LeetCode刷题
文章平均质量分 58
红红火火pzt
猛学java
展开
-
LeetCode第55题:跳跃游戏
优化时间:若已经知道从某一位置起跳,怎么都跳不动终点,可以将该位置记录下来。从0到max_pos遍历这个数组,并实时更新max_pos的值,当max_pos >= (n - 1),说明能跳到终点,返回true。某个位置 i 能跳到的最远位置为:i + nums[i],当这个值大于max_pos时,更新max_pos.如果当前位置超过终点,也说明能跳到终点,返回true。若从该位置往后跳,怎么都跳不到终点,返回false。用深度优先搜索的方法,跳到某一位置后,下一步跳到最远位置,依次递减到1。原创 2023-02-19 16:38:14 · 429 阅读 · 0 评论 -
LeetCode第695题:岛屿的最大面积
岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。下面是主要函数get_square()的功能,它用递归的方式求出岛屿面积,传递的参数包括:二维数组信息、visit 数组,当前格子位置(x,y)。用深度优先搜索的方法求岛屿的面积,要需要建立一个visit二维数组,记录某个位置是否被访问过。主函数就是遍历每一个位置,求该岛屿面积,若面积大于先前最大面积,则更新最大面积即可。著作权归领扣网络所有。岛屿的面积是岛上值为 1 的单元格的数目。原创 2023-02-19 15:51:39 · 209 阅读 · 0 评论 -
LeetCode第529题:扫雷游戏
给你一个整数数组 click ,其中 click = [clickr, clickc] 表示在所有 未挖出的 方块('M' 或者 'E')中的下一个点击位置(clickr 是行下标,clickc 是列下标)。如果一个 没有相邻地雷 的空方块('E')被挖出,修改它为('B'),并且所有和其相邻的 未挖出 方块都应该被递归地揭露。如果一个 至少与一个地雷相邻 的空方块('E')被挖出,修改它为数字('1' 到 '8' ),表示相邻地雷的数量。如果一个地雷('M')被挖出,游戏就结束了- 把它改为 'X'。原创 2023-02-18 19:38:04 · 172 阅读 · 0 评论 -
LeetCode第79题:单词搜索
接下来要向四个方向查找后面的字符,遍历上下左右四个格子,递归调用dfs函数查找,传递的参数中,(x,y)变为新格子的位置,pos= pos+ 1(从下一个字母开始匹配)。即从mat[x][y] 寻找是否有word[pos]往后的单词,存在则匹配成功,返回true。4、如果四个方向上,有返回true的话,直接返回true。1、进来先判断mat[x][y] 是否等于 word[pos] ,visit[x][y] 是否等于1?因为格子不能重复使用,所以要建立一个visit[m][n]的数组,记录格子是否被用过。原创 2023-02-18 18:22:18 · 131 阅读 · 0 评论 -
leeetcode第289题:生命游戏
每个细胞都具有一个初始状态: 1 即为 活细胞 (live),或 0 即为 死细胞 (dead)。下一个状态是通过将上述规则同时应用于当前状态下的每个细胞所形成的,其中细胞的出生和死亡是同时发生的。因为原矩阵board中的所有值是同时变换的,所以要新建一个二维矩阵res, 记录变换后的值,最后统一更新board。如果活细胞周围八个位置有两个或三个活细胞,则该位置活细胞仍然存活;如果活细胞周围八个位置的活细胞数少于两个,则该位置活细胞死亡;如果活细胞周围八个位置有超过三个活细胞,则该位置活细胞死亡;原创 2023-02-17 16:39:26 · 97 阅读 · 0 评论