【LeetCode】HOT 100(11)

news/2024/12/24 0:54:32/

题单介绍:

精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数据结构的新手和想要在短时间内高效提升的人,熟练掌握这 100 道题,你就已经具备了在代码世界通行的基本能力。

目录

题单介绍:

题目:64. 最小路径和 - 力扣(Leetcode)

题目的接口:

解题思路:

代码:

过过过过啦!!!!

题目:72. 编辑距离 - 力扣(Leetcode)

题目的接口:

解题思路:

代码:

过过过过啦!!!!

写在最后:


题目:64. 最小路径和 - 力扣(Leetcode)

题目的接口:

class Solution {
public:int minPathSum(vector<vector<int>>& grid) {}
};

解题思路:

这道题也是简单dp,

主要思路就是:(三种情况)

1. 第一行的值就是自己的值加上左边数的值

2. 第一列的值就是自己的值加上上面数的值

3. 其它位置就是自己的值加上min(左边数的值,上面数的值)(因为是找最小值路径)

代码:

class Solution {
public:int minPathSum(vector<vector<int>>& grid) {for(int i = 0; i < grid.size(); i++) {for(int j = 0; j < grid[0].size(); j++) {if(i == 0 && j == 0) continue; //第一行第一列就是自己本身else if(i == 0) grid[i][j] = grid[i][j - 1] + grid[i][j]; //情况1else if(j == 0) grid[i][j] = grid[i - 1][j] + grid[i][j]; //情况2else grid[i][j] = min(grid[i - 1][j], grid[i][j - 1]) + grid[i][j]; //情况3}}return grid[grid.size() - 1][grid[0].size() - 1];}
};

过过过过啦!!!!

题目:72. 编辑距离 - 力扣(Leetcode)

题目的接口:

class Solution {
public:int minDistance(string word1, string word2) {}
};

解题思路:

这道题也是dp问题,算是不怎么基础的基础dp问题吧,

这道题的状态转移方程我也是看了很久才看明白,

具体思路是这样子的:

1. 我们将操作一个单词分成三种情况:插入、删除、替换

2. 初始化用于动态规划的二维数组,将第一行作为插入操作,第一列作为删除操作初始化其操作数

3. 三种操作分别对应上,左,左上。(左上对应的是替换操作)

然后我们列出状态转移方程:(因为要求的是最小的步数)

1. 如果单词需要操作,找出三种操作中最小一步 + 1次操作

2. 如果单词不需要操作,就不操作(返回之前的样子)

代码如下:

代码:

class Solution {
public:int minDistance(string word1, string word2) {// +1 是未了在单词为空的时候,也能创建出空间vector<vector<int>> dp(word1.size() + 1, vector<int>(word2.size() + 1, 0));//将第一行和第一列初始化for(int i = 0; i < dp.size(); i++) dp[i][0] = i;for(int i = 0; i < dp[0].size(); i++) dp[0][i] = i;//动态规划for(int i = 1; i < dp.size(); i++) {for(int j = 1; j < dp[0].size(); j++) {//找出三种操作中最小一步 + 1次操作dp[i][j] = min(dp[i - 1][j - 1], min(dp[i - 1][j], dp[i][j - 1])) + 1;if(word1[i - 1] == word2[j - 1]) {//如果单词不需要操作,就不操作(返回之前的样子)dp[i][j] = dp[i - 1][j - 1];}}}//.back()是返回数组最后一个元素return dp.back().back();}
};

过过过过啦!!!!

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果感到有所收获的话可以给博主点一个哦。

如果文章内容有遗漏或者错误的地方欢迎私信博主或者在评论区指出~


http://www.ppmy.cn/news/382607.html

相关文章

乐曲软件APP,钢琴键盘模拟器分享

手机里有可以弹奏出钢琴乐曲的软件钢琴键盘模拟器&#xff0c;非常受年轻的朋友喜欢。今天我就在这里和大家分享一下&#xff0c;使用钢琴键盘模拟器弹奏钢琴乐曲的软件。 先启动手机&#xff0c;运行钢琴键盘模拟器软件APP&#xff0c;点 击【钢琴键盘模拟器】图标进入可操作…

解密神庙逃亡类跑酷游戏地图无限的原因

解密神庙逃亡类跑酷游戏地图无限的原因 1.无限之谜 众所周知&#xff0c;跑酷类游戏像神庙逃亡给玩家的一种感觉就是地图无限多。有人说神庙逃亡跑1亿分就结束了&#xff0c;但这些其实都是假象&#xff0c;在程序猿眼中&#xff0c;这些人都是无知的。 这是一个最简单的跑酷…

pygame 神庙逃亡

游戏规则 用pygame动画实现神庙逃亡类似的小游戏&#xff0c;当玩家移动的时候躲避子弹&#xff0c;如果子弹命中玩家或者名字龙都会减速&#xff0c;玩家躲避子弹使更多的子弹打在龙上&#xff0c;当玩家被龙抓到&#xff0c;则游戏输&#xff0c;如果龙被子弹减少速度&#…

Android收起虚拟键盘

关于收起虚拟键盘&#xff0c;网上能找到的大多是这个&#xff1a; InputMethodManager imm (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(editText.getWindowToken(), 0) ; 不过这有个问题&#xff0c;比如我们在一个…

unity制作类似神庙逃亡控制效果(手势检测)

前几天突然有兴趣了解一下手游相关的开发 刚开始完全没有头绪&#xff0c;然后慢慢了解了一些知识后&#xff0c;决定尝试写一个类似于神庙逃亡的游戏效果 1.准备工作 先导入素材 &#xff08;官方商店里边的&#xff09;机器人素材 带有跑步动作 在Animator中把跑步动画设为…

Unity3D之神庙逃亡路移动效果

在游戏中很多对象都是假象,就比如人物移动效果的实现,可以是人物移动,但同样可以人物不动,场景动来实现。 下面就是一个人物不动,场景移动的效果: 下面直接上代码 void RoadMoveFP() { this.transform.Translate(-Vector3.forward * m_MoveSpeed * Time.delt…

Unity 编写类似神庙逃亡手势

1、首先我们先定义一个枚举&#xff0c;用来表示手势滑动的四个方向&#xff1a; <span style"font-size:14px;">public enum TouchDirection { Unkown,Left,Right,Up,Down }</span> 2、定义类&#xff1a;TouchInput <span style"font-size:14…

WP8手机安装《神庙逃亡》的教程

虽然神庙逃亡的最新版宣称支持512RAM的WP8手机&#xff0c;但大部分童鞋测试结果依然悲催&#xff0c;今天新锋网小编就为您带来如何顺利安装神庙逃亡的教程&#xff01; 本方法必须使用手机WIFI&#xff1a; 1.请关闭手机的商城&#xff08;如果已经打开过&#xff0c;先切回去…