笔试刷题专题(一)

文章目录

  • 最小花费爬楼梯(动态规划)
    • 题解
    • 代码
  • 数组中两个字符串的最小距离(贪心(dp))
    • 题解
    • 代码
  • 点击消除
    • 题解
    • 代码

最小花费爬楼梯(动态规划)

题目链接
在这里插入图片描述

题解

1. 状态表示:以i位置为结尾的最小花费
2. 状态转移方程:
dp[i] = min(dp[i-1] + cost[i-1,dp[i-2] + cost[i-2])
可以从 i-1 位置和 i-2 到达 i 位置
注意 dp[i] 表示的是 i 位置之前的最小花费,还要加上该点的位置才是到达这个点的最小花费
注意楼顶的位置是n下标的位置
3.从左往右开始填表
4. 初始化:dp[0] = dp[1] = 0,因为从0或者1位置开始向后走,之前是没有花费的

代码

class Solution 
{
public:int minCostClimbingStairs(vector<int>& cost) {int n = cost.size();vector<int> dp(n+1);// 初始化// 1.到达dp[i]这个位置的值是不用算进去的// 从这个位置起跳后才把这个位置的值加入到dp表中// 2.楼顶是在下标为n的位置dp[0] = dp[1] = 0;for(int i = 2;i <= n;i++){// 填表dp[i] = min(dp[i-1] + cost[i-1],dp[i-2] + cost[i-2]);}return dp[n];}
};

数组中两个字符串的最小距离(贪心(dp))

题目链接
在这里插入图片描述

题解

1. 第二种解法是:
使用两个额外的变量来记录两个字符串的下标,每遇到其中一个字符串就去这个字符串的前面找另一个字符串,记录两个字符串之间的最小距离,记得找完后要更新下标
2. 这样不用暴力地固定一个字符串找另一个字符串了,时间复杂度优化为了O(N)

在这里插入图片描述

代码

#include <iostream>
#include<string>
using namespace std;int n;
int main() 
{  cin >> n;string s1,s2;cin >> s1 >> s2;int ans = 0x3f3f3f3f;// 最大的数int prev1 = -1,prev2 = -1;for(int i = 0;i < n;i++){string s;cin >> s;if(s1 == s){if(prev2 != -1){ans = min(ans,i - prev2);}prev1 = i;}else if(s2 == s){if(prev1 != -1){ans = min(ans,i - prev1);}prev2 = i;}}if(ans == 0x3f3f3f3f) cout << -1 << '\n';else cout << ans << '\n'; return 0;
}

点击消除

题目链接
在这里插入图片描述

题解

1. 这题和括号匹配是类似的,都是两两消除
2. 可以使用栈或者用一个string来模拟栈
3. 如果是使用栈的话,把栈中的元素取出来放入string中,最后需要逆置一下
4. 用字符串模拟栈,如果栈是空的,就加入st字符串的尾部,如果栈非空并且st尾部的元素和字符串中的元素相同就出栈,如果栈非空并且st尾部的元素和字符串的元素不同就入栈,模拟是不需要逆置的

在这里插入图片描述

代码

#include<vector>
#include<string>
#include<iostream>
#include<stack>
#include<algorithm>
using namespace std;int main()
{string s;cin >> s;int n = s.size();stack<char> sk;for (int i = 0; i < n; i++){if (sk.empty()) sk.push(s[i]);else{if (sk.top() == s[i]){sk.pop();}else sk.push(s[i]);}}string t;if (sk.empty()) cout << 0 << '\n';else{while (!sk.empty()){char ch = sk.top();t.push_back(ch);sk.pop();}reverse(t.begin(), t.end());cout << t << '\n';}return 0;
}用字符串模拟栈
#include <iostream>
#include<string>
using namespace std;int main() 
{string s,st;cin >> s;for(auto ch : s){if(st.size() && st.back() == ch) st.pop_back();else st += ch;}int k = st.size();if(k == 0) cout << 0 << '\n';else cout << st << '\n';return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/33177.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hcia华为路由器静态路由实验配置

目录 一、网络拓扑分析 二、华为路由器配置&#xff08;分设备&#xff09; 1. R1 配置 2. R2 配置 3. R3 配置 三、验证测试 拓扑图 一、网络拓扑分析 IP 地址规划&#xff1a; R1&#xff1a;E0/0/0&#xff08;12.1.1.1/24&#xff09;、E0/0/1&#xff08;192.168.1.…

贪心算法和遗传算法优劣对比——c#

项目背景&#xff1a;某钢管厂的钢筋原材料为 55米&#xff0c;工作需要需切割 40 米&#xff08;1段&#xff09;、11 米&#xff08;15 段&#xff09;等 4 种规格 &#xff0c;现用贪心算法和遗传算法两种算法进行计算&#xff1a; 第一局&#xff1a;{ 40, 1 }, { 11, 15…

PowerBi,一个简单的动态度量值以及图表联动的案例

假设我们有一张[销量表]&#xff0c;数据如下: 我们想做下面的效果: 左边的饼图显示每个门店的销量以及百分比&#xff0c;右边是一个堆积条形图&#xff0c;显示每种商品的销量&#xff0c;并且有一个切片器能切换显示销售渠道 做法如下&#xff1a; 1.报表里放入一个饼图&a…

夜莺监控 v8.0 新版通知规则 | 对接企微告警

对新版本通知规则还不太了解的用户可以阅读文章&#xff1a;《夜莺监控巨大革新&#xff1a;抽象出通知规则&#xff0c;增强告警通知的灵活性》。下面我们将以企微通知为例&#xff0c;介绍如何使用新版通知规则来对接企微通知。 上图是通知规则对接企微通知的示意逻辑图。 在…

HCIA-11.以太网链路聚合与交换机堆叠、集群

链路聚合背景 拓扑组网时为了高可用&#xff0c;需要网络的冗余备份。但增加冗余容易后会出现环路&#xff0c;所以我们部署了STP协议来破除环路。 但是&#xff0c;根据实际业务的需要&#xff0c;为网络不停的增加冗余是现实需要的一部分。 那么&#xff0c;为了让网络冗余…

LeetCode 解题思路 15(Hot 100)

解题思路&#xff1a; 引入哑节点&#xff1a; 简化头节点删除操作&#xff0c;统一处理所有边界条件。快慢指针法&#xff1a; 快指针先移动 n 步&#xff0c;确保快慢指针距离为 n&#xff0c;之后同步移动快慢指针。当快指针到达末尾时&#xff0c;慢指针指向倒数第 n 个节…

大数据学习(65)- Hue详解

&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一…

设计模式之美

UML建模 统一建模语言&#xff08;UML&#xff09;是用来设计软件的可视化建模语言。它的语言特点是简单 统一 图形化 能表达软件设计中的动态与静态信息。 UML的分类 动态结构图&#xff1a; 类图 对象图 组件图 部署图 动态行为图&#xff1a; 状态图 活动图 时序图 协作…

【大模型学习】第十八章 强化学习介绍

目录 引言 一、 强化学习的理论基础与发展脉络 1.1 基本概念与核心要素 1.2 历史演进与里程碑 二、 强化学习的数学框架与核心算法 2.1 马尔可夫决策过程与贝尔曼方程 2.2 基于价值的算法 2.3 基于策略的算法 2.4 混合算法&#xff1a;Actor-Critic架构 2.5 应用举例 …

Chatbox通过百炼调用DeepSeek

解决方案链接&#xff1a;评测&#xff5c;零门槛&#xff0c;即刻拥有DeepSeek-R1满血版 方案概览 本方案以 DeepSeek-R1 满血版为例进行演示&#xff0c;通过百炼模型服务进行 DeepSeek 开源模型调用&#xff0c;可以根据实际需求选择其他参数规模的 DeepSeek 模型。百炼平台…

网络安全设备系统集成方案 系统集成和网络安全

一、网络安全概述 计算机网络安全是指计算机、网络系统的硬件、软件以及系统中的数据受到保护&#xff0c;不因偶然的或恶意的原因而遭到破坏、更改、泄露&#xff0c;确保系统能连续和可靠地运行&#xff0c;使网络服务不中断。广义地说&#xff0c;凡是涉及网络上信息的保密…

【菜鸟飞】通过vsCode用python访问公网deepseek-r1等模型(Tocken模式)

目标 通过vsCode用python访问deepseek。 环境准备 没有环境的&#xff0c;vscode环境准备请参考之前的文章&#xff0c;另外需安装ollama&#xff1a; 【菜鸟飞】用vsCode搭建python运行环境-CSDN博客 AI入门1&#xff1a;AI模型管家婆ollama的安装和使用-CSDN博客 选读文章…

C# Unity 唐老狮 No.9 模拟面试题

本文章不作任何商业用途 仅作学习与交流 安利唐老狮与其他老师合作的网站,内有大量免费资源和优质付费资源,我入门就是看唐老师的课程 打好坚实的基础非常非常重要: Unity课程 - 游习堂 - 唐老狮创立的游戏开发在线学习平台 - Powered By EduSoho 如果你发现了文章内特殊的字体…

【2025最新】phpMyAdmin渗透利用全链路:信息收集→漏洞探测→后渗透提权技巧

目录 一、信息收集与漏洞探测 1. 获取关键信息 2. 权限验证 3. 漏洞扫描 二、历史漏洞利用方法 1. 写入 Webshell 到了这个地步密码探索 2. 远程代码执行&#xff08;RCE&#xff09; 3. 提权与后渗透 4. 文件包含漏洞 三、高危历史漏洞列表 四、防御与加固建议 五…

泰山派开发之—Ubuntu24.04下Linux开发环境搭建

简介 最近翻到了吃灰已久的泰山派&#xff0c;是刚出来的时候用优惠券买的&#xff0c;当时价格挺便宜的&#xff0c;最近给它翻出来了&#xff0c;打算试试做个项目。买的泰山派容量是2G16G&#xff0c;SOC芯片使用的是RK3566&#xff0c;搭载1TOP算力的NPU&#xff0c;并且具…

05延迟任务精准发布文章(redis实现延迟任务、分布式锁)

上架不代表发布(需要发布app端才会显示文章&#xff09; 1)文章定时发布 2)延迟任务概述 2.1)什么是延迟任务 定时任务&#xff1a;有固定周期的&#xff0c;有明确的触发时间 延迟队列&#xff1a;没有固定的开始时间&#xff0c;它常常是由一个事件触发的&#xff0c;而在…

linux 命令 ls

ls 是 Linux 系统中用于列出目录内容的核心命令&#xff0c;几乎所有日常操作都会用到。以下是其详细用法和常见场景说明 1. 基础语法 ls [选项] [目录/文件] 不指定目录时&#xff0c;默认列出当前目录的内容。 可以指定文件或目录路径&#xff0c;支持通配符&#xff08;如…

c++介绍函数指针 十

指针代表内存中地址标识符&#xff0c;变量&#xff0c;数组都是存储内存中的数据。所以可以获得它们的地址&#xff0c;用指针来表示这块内存。 如图输出内存中的地址。 对于一个函数来说&#xff0c;也是内存中存储这段数据&#xff0c;所以我们也可以获取函数的地址。 函数…

艾尔登复刻Ep1——客户端制作、场景切换、网络控制

需要添加的插件内容 Netcode for GameObjects&#xff1a;是一个为 Unity 游戏开发提供高级网络功能的 SDK。它的主要作用是允许开发者在其 GameObject 和 MonoBehaviour 工作流中集成网络功能&#xff0c;并且可以与多种底层传输层协议兼容。 具体内容请看&#xff1a;https:…

WPS的Excel文档如何利用VB脚本批量替换超链接的内容

准备知识 关于WPS的Excel点击单元格打开别的文档的两种方法的探究【为单元格添加超链接】 https://blog.csdn.net/wenhao_ir/article/details/146212767 激活WPS的Excel文档中的VB编辑器功能 没有激活前的截图如下: 原因是我们的电脑中缺乏VBA插件,我们点击“开发工具”:…