力扣
文章平均质量分 58
暴力蘑菇
好事发生
展开
-
【力扣】38. 外观数列 - 力扣(LeetCode)
这个题首先想到的就是用递归,如然后就是对上一个的字符串进行遍历,遍历的同时进行判断,每次结束一个最小数量的组,就把这个小片段格式话成字符串,然后依次结束,把每个字符串拼接起来就是最终的结果,然后进入下一次的迭代;总体思路比较简单,但是代码效率非常低原创 2024-04-06 17:16:28 · 196 阅读 · 0 评论 -
【力扣】43. 字符串相乘 - 力扣(LeetCode)
不是先得到三个结果,然后再相加,实际是对两个单独的数进行处理然后加上进位和这个位上原本的值,然后把结果进行存储原创 2024-04-06 21:41:12 · 190 阅读 · 0 评论 -
【力扣】55. 跳跃游戏 - 力扣(LeetCode)
Problem:记录自己解答的思路和代码。原创 2024-04-13 22:14:02 · 287 阅读 · 0 评论 -
【力扣】22. 括号生成 - 力扣(LeetCode)-C-回溯法
每次记录完毕都进行一个判断例如n=2时,当( 出现两次,那么剩下的一定都是 ),这个很好补全,还有一种就是( ))的情况,也就是R>L,这时候不符合情况,就不要记录了,舍弃这一层的结果返回上一层,依次遍历全部情况;这个本质上使用的还是递归,是一种暴力的求解,只不过处理代码放在了return的后面;理解回溯的前提一定要搞懂递归。这里记录的思路主要是根据代码的流程来进行一个解释,主要是还是使用回溯法,对于括号的判断,每次选择都有两次分支,不是。原创 2024-04-04 16:52:50 · 353 阅读 · 0 评论 -
【力扣】20. 有效的括号-纯C-栈的理解及运用
这个题要理解透彻采用栈的结构,遇到(,{,[,三种结构就进行入栈,每次出现相对的就与栈顶相比较,如果栈顶没有东西可比较的则也是错误情况返回false,如果不同就返回false;如果相同栈顶指针向下移动,对消完毕,舍弃前面栈顶的值,pt指向新的栈顶。还有一种情况就是最后没有对消完,也就是((((的情况,则要返回假。原创 2024-04-03 21:19:51 · 141 阅读 · 0 评论 -
【力扣】17. 电话号码的字母组合 - 力扣(LeetCode)
这个回溯法的关键是要理解递归,在递归的基础上再理解回溯法,尤其是当递归结束和循环结束后下一步应该运行到哪里?return可以返回到上一层递归,但是当最后循环结束时也能回到上一层递归,可以调试看看每一步运行过程。对于个题目而言,我使用的均是中心扩散法,但是细节处理有些不同,有两个版本,一个是字符串原地返回,另外一个是申请内存并进行保持符合要求的字符串,然后进行返回;原创 2024-04-02 12:05:26 · 469 阅读 · 0 评论 -
【力扣】5. 最长回文子串 - 力扣(LeetCode)
这个问题比较简单,对于字符串"ab"而言,循环中不会进行判断,也就是max的值不会更新,所以返回s时第二个值要截断成’\0’,所以要max预设成1;对于个题目而言,我使用的均是中心扩散法,但是细节处理有些不同,有两个版本,一个是字符串原地返回,另外一个是申请内存并进行保持符合要求的字符串,然后进行返回;如果只按照上面的思路进行写程序,会显得很麻烦,很多细节要考虑到,因此可以选择暴力一点,对每一个字符,我们都认为它既是奇数类又是偶数类,,这时很理所当然的,我当时也是这样认为的,但是结果是错误的!原创 2024-03-30 14:10:38 · 260 阅读 · 0 评论 -
【力扣】36. 有效的数独 - 力扣(LeetCode)
9个小方块如何与循环联系起来,其中可以观察,首先是行数的变换肯定是在最外循环圈,因此每次加三就行,而对于列循环肯定是在内圈,而且行数变换一次,列数就要循环变换三次,因此列数每次加三是在内循环,而最里面的循环就是先进行拉直处理,然后进行判断数组元素是否相等,具体细节可以参考代码,由于使用的是暴力循环,思路比较简单,因此就不梳理整体流程图了。这个是比较好判断的;对于循环判断的难点就是最后一个如何进行判断,因为这不像一行或者一列的进行判断,如果是一行或者是一列就好判断了,因此我们可以思考把这。原创 2024-03-27 16:39:32 · 429 阅读 · 0 评论 -
【力扣】35. 搜索插入位置 - 力扣(LeetCode)
首先想到是要用二分法,所以做这个题要了解一下二分法的原理及代码实现。对于这个题而言,二分法最后结束的条件最好是。,循环结束后有两类,一种是找到了目标值也就是返回下标mid,另外一种就是没有找到,但是目标值的下标一定跟。,因此对于left对应的值是否等于目标值我们没有判断,所以left对应的值有三种可能,也就是。,这样利于后面的判断因此while循环的条件应当是。而前两种情况可以归为一类,例如:1,3,5,6;,因为我们循环结束的条件是。原创 2024-03-26 11:28:59 · 413 阅读 · 0 评论 -
【力扣】力扣三数之和二次作答记录-难以察觉的错误
【代码】力扣三数之和二次作答记录-难以察觉的错误。原创 2024-03-17 17:46:07 · 214 阅读 · 1 评论 -
【力扣】31. 下一个排列--个人作答思路分析-力扣-C语言
这个题的关键是找到比这个序列大一点点的下一个序列,例如比123大的序列有132,213,231,312,321,那么只有132是刚好比123大一点点,如何找呢?可以用先找到要替换哪一位,这个就是从后往前依次两位进行比较大小,如果发现后面一位是大于前面一位,那么前面一位就是要替换的数.例如:1,2,3,4,6,7,5:其中56,那么6这一位置就是要替换的数,但是用哪个来替换呢?可以先把6后面的数进行升序排列变成:5,7,只要从前往后把升序的序列找到第一个比6大的,也就是7与其进行替换,那么替原创 2024-03-20 13:41:35 · 352 阅读 · 0 评论 -
【力扣】33. 搜索旋转排序数组 - 力扣(LeetCode)-思路分析及解答
【代码】【力扣】33. 搜索旋转排序数组 - 力扣(LeetCode)-思路分析及解答。原创 2024-03-25 13:42:58 · 173 阅读 · 0 评论 -
【力扣】45. 跳跃游戏 II
核心思路,例如nums[i]=5,那么最远能跳五步;那么在这接下来1-5范围内,哪个能让我跳的最远,这个最远指的是超过5的范围最远:而不是1-5步内哪个数最大!!!! //例如: 5 4 1 1 3 1; //下标: 0 1 2 3 4 5 下一步是跳到nums[4]显然能下一步能跳的更远(注意这个更远的含义,指超出5的范围)而原创 2024-04-14 15:33:13 · 268 阅读 · 0 评论