自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 leetcode 跳跃游戏

此方法不正确,更改思路,既然每次是跳跃的最大长度,那我们能不能记录下当下标+1后,我们最多还能跳多少步,如题目第一个例子,[2,3,1,1,4],第一次下标为0,最大可跳2步,下标+1后,下标为1,最大可跳max(2-1,3)=3步,以此推导下去,若下标到数组的长度之前,最大可跳步数为零了,就代表不能继续了,返回flase,否则返回true,经过思考此方法是可行的。代码中需要考虑特殊情况,如长度为1,或者长度不为1时,下标零的值为0,代表不能开始。

2023-09-14 09:17:39 105 1

原创 LeetCode每日一题(中等)955. 删列造序 II

此题关键在于当两个字符串的第一位相等时,要判断下一位是否按字典序排列。设置一个标志位用于下一次循环时的判断条件是最好的办法,当前一行字符串的第一位比后一行字符串的第一位小,令标志位为1,反过来想便是当前一行字符串的第一位大于等于后一行字符串的第一位时,标志位为0,只有当标志位为0和前一行比后一行大同时满足时,才删除该列。

2023-07-26 09:46:54 89 1

原创 LeetCode每日一题(中等)200. 岛屿数量

采用搜索算法,如果找到一个位置为1,就将此位置修改为0,再去遍历它上下左右的点,若也为1,则修改为0,这就能保证进行一次搜索后与该位置相邻的所以点都变为0,再进行计数则可。

2023-07-23 19:52:41 57

原创 LeetCode每日一题(中等)665. 非递减数列

第二组数据在遍历时发现i为2时,3比2大 3前面有一个数3 并且比3后面的数2小,则应将3后面一位2替换为3。第二组数据在遍历时发现i为1时, 4比2大 4前面有一个数-1并且比4后面的数2小,则将4的位置替换为2。第一组数据在遍历时会发现i为0时 4比2大,4前面没有数 则将4的位置替换为2即可。本题的难点在于若找到一个数比他后面那个数大时,修改后面那位数还是本身。在调试过程中发现这几组数具有代表性。

2023-07-22 15:46:46 51

原创 LeetCode每日一题(中等)788. 旋转数字

1,若发现其中一位有3,4,7中任意一个,则不是旋转数字。1,每个位有0,1,2,5,6,8,9中的其中一个。2,若每个位都是0,1,8,则不是旋转数字。2,存在至少一个2,5,6,9。满足以下两个条件即为旋转数字。

2023-07-21 10:25:29 25 1

原创 LeetCode每日一题(中等)236. 二叉树的最近公共祖先

可通过前序遍历方法遍历二叉树,终止条件比较好判断,当root节点越过叶子节点或者找到p和q节点任意一个即可返回。于是通过遍历,当遇到p和q节点时返回,再进行回溯。2,p节点为root节点,q在p节点的任意子树中。3,q节点为root节点,p在q节点的任意子树中。1,p和q在root节点的左右两侧子树中。

2023-07-20 11:11:35 25 1

原创 Leetcode每日一题(中等)1006. 笨阶乘

采用数学的方法,通过观察可得出四个数为一组,这四个数的计算顺序都知道,然后递归,则可得到正确答案,需要注意边界问题,即最后剩下的数做的什么运算。

2023-07-18 14:40:41 125 1

原创 LeetCode每日一题(中等)1513. 仅含 1 的子串数

可设f(k)为有k个1时的字符串个数,根据上面观察可以得出 f(k+1) = f(k) + k,当k为2时,f(3) = f(2) + 2 = 3 + 3,以此类推。代码就能轻易写出来,先遍历字符串,再统计k的值,最后求和。当一个1时,仅有1个字符串由1组成。此题算法较为简单,可对其找规律。当四个1时,有10个。当五个1时,有15个。当六个1时,有21个。

2023-07-18 10:06:10 20 1

原创 LeetCode每日一题(中等)2684. 矩阵中移动的最大次数

LeetCode:343. 整数拆分,动态规划入门50题,《算法零基础入门》动态规划 (一),动态规划DP0-1背包,10分钟学会哈希表,带你学透0-1背包问题!希望这个视频能帮助你学习算法、坚持下来,【喵的算法课】动态规划 01背包【3期】,我是如何因为算法竞赛毁掉自己人生的。此题为动态规划问题,首先想到的是递归,写一个dfs(i,j),枚举出向右边的三个方向走,对应的格子没有出界且格子的值大于grid[i][j],就有。2.递归改为循环,由于递归是从左向右移动,所以递推是从右到左移动。

2023-07-17 16:03:27 74 1

原创 LeetCode每日一题(中等)2580. 统计将重叠区间合并成组的方案数

但上述方法还是较为复杂,找两个有交集的集合比较困难,但找两个不相交的集合更为简单,仅仅只需要下一个集合的最小值大于前一个集合的最大值即可。但如果直接找不相交的集合较为困难,可把给出的容器先进行排序,再查看下一个范围是否和上一个范围重合,若重合,则将范围变为两个范围的并集,若不重合,得到的ans自加1,范围也跟着变化。此题思路较为简单,其根本就是在于找到不相交的集合数量n,再求2^n次方即可。通过本题,我们应该学会逆向思维,有时候正着想比较复杂,不妨反着思考一下。

2023-07-16 21:15:10 69 1

原创 Leetcode每日一题(简单)594. 最长和谐子序列

例如原数组为[1,3,2,2,5,2,3,7],先进行排序后得到[1,2,2,2,3,3,5,7],其中符合上述的最大子序列为[2,2,2,3,3],该子序列和最长子序列[3,2,2,2,3]的元素个数相同,数值相同,仅仅是顺序不同,因此可以用上述方式求出最长和谐子序列的最大长度。个人认为其长度相同的原因在于如果找到了最长和谐子序列,必定只有两个不同的元素,然后再将数组中的其余元素删除,得到的数量和排序之后这两个数的数量一定是相同的。

2023-07-14 10:02:25 65 1

原创 Leetcode每日一题(中等)866. 回文素数

此题为基础题拼凑在一起的,我的思路是先检查是不是回文数再检查是不是素数,使用递归的方式不断检索出符合题意的数。问题在于会超时,看评论区速度快的太无赖了,直接把范围内所有满足条件的数构成数组,再用二分检索。

2023-07-12 21:18:55 28 1

原创 Leetcode每日一题(困难)458. 可怜的小猪

当times为2,猪为一只时,能判断出桶的数量为times+1,当猪增加为两只时,能判断出的桶的数量为pow(3,2),也就是3的平方,九个桶,以此类推,猪为三只时,上述矩阵变为三维,可以判断3^3=27个桶。minutesToDie = 15, minutesToTest = 30, 则喂水的次数times = minutesToTest / minutesToDie = 2次,倘若只有一只猪,则最多可以确认三个桶里的水是否有毒,即喂水两次可以判断三个桶里的水是否有毒。

2023-07-11 10:34:12 137 1

原创 Leetcode 每日一题(中等) 2275. 按位与结果大于零的最长组合

对该问题进行转换,转换为判断哪个位出现1的次数最多。可以通过遍历数组,从低位到高位判断是否为1,若第一位为1,则将数组ans的第一位自加1,以此来判断哪一个位出现的1最多。最后找到ans容器中最大的数即可。

2023-07-10 19:31:56 31 1

原创 Leetcode每日一题(中等)LCP 29. 乐团站位

链接:https://leetcode.cn/problems/SNJvJP/solution/tu-wen-bing-mao-jiang-jiang-shu-xue-fang-dt8e/将方阵分为不同的圈,先计算出要求的点所在第几个圈中,然后可以计算出每层圈的周长,最后根据所求出要计算的点在最后一个圈内的什么位置,进而得到所有圈的周长之和,再余9即可求出答案。最里面一个完整圈的边长是num - 1 - (circle - 1) * 2 = num - 2 * circle + 1。

2023-07-07 17:12:08 50 1

原创 【无标题】

根据参考答案写的,主要思路是用一层一层遍历的方法遍历整个二叉树,其中q为指针指向根节点,通过node变量得到下一层的根节点,并将下一层节点的值的和相加,减去子节点的值,即为堂兄弟节点的值的和,再将q指针指向下一层节点,以此循环直到q指向NULL(个人理解,仅供参考)Leetcode每日一题(中等)2641.二叉树的堂兄弟节点。附vscode调试代码。

2023-07-06 21:25:05 29 1

原创 leetcode每日一题(简单)设计 Goal 解析器

如"h"代表的是字符串string类型,也就是相对于"h\0",以'\0'结尾。直接遍历字符串将其中的'()'替换为"o",'(al)'替换为"al"即可。单引号是char型字符,双引号是string字符串。而'h'代表的是h这个字符。

2023-07-05 11:22:41 25

原创 leetcode每日一题(简单)1446. 连续字符

取最大的cnt,最开始让s[i]!=s[i+1]时取max,但发现对于连续相等字符串如"cccc"则不会进入到else中,因而每次cnt的值变化的时候都把cnt和res的最大值赋予res,保证res永远是最大的。遍历字符串,根据字符串的相邻两个字符是否相等,让cnt自加1,若发现字符串中前一个字符和后一个字符不相等,则将cnt归零重新计数。初始化问题,c++中变量定义之初最好初始化,笔者最开始没有初始化导致输出的值每次都不一样。

2023-07-05 10:25:54 82

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除