![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 88
Yang_Yang_66666
没人会在乎小人物的死活!
展开
-
代码随想录刷题|一刷总结
成果汇报经验总结为什么要刷题未来计划以及附件资源,里面有所有pdf,需要自取。我会在末尾放上pdf,点击思维导图的右上角的【箭头】可以直接跳转到leetcode,提供一键跳转方便复习。原创 2024-04-21 14:39:49 · 1201 阅读 · 0 评论 -
代码随想录刷题day01|704.二分查找、27.移除数组元素
提示:不知道怎么找中间节点如果left和right都是大于Max_Integer一半的值,数组就越界了。用下面的写法就不会越界了。提示:不知道怎么确定边界问题看一开始的left和right 的定义是左闭右闭还是左闭右开的。原创 2024-02-21 21:10:16 · 479 阅读 · 0 评论 -
代码随想录刷题day02|有序数组的平方&&滑动窗口
977原题链接为啥不能这么写呢。主要是漏了等于号,在俩个元素乘积相等的时候,会跳出循环,导致死循环,具体看下面的debug代码,或者自己复制下来debug一遍就知道了。2.正确写法2二、长度最小的子数组209原题链接3.正确写法2只是把end的初始化放到了for循环里面,对于初学者来说,比第一种稍微难理解一点点。三、螺旋矩阵59原题链接今天上班比较忙。原创 2024-02-22 21:23:46 · 361 阅读 · 1 评论 -
代码随想录刷题day03|链表理论基础&移除链表元素&设计链表&翻转链表
203原题链接为啥不能这么写呢。假设链表是5->7->2->null,需要删除5,声明ListNode cur = head,cur指向5这个元素,在while循环里面(每次循环都是cur.next)就会把第一个节点给跳过,会导致符合条件的节点没有被删除,所以不能这么写。总结起来就是依托答辩,既不像单指针又不像双指针,不知道怎么形容了。。用脑袋想想,肯定不能移动dummy的指向,一直移动dummy,最后返回null了。如下图,入参head=1->2->3->null2.正确写法2`采用双指针原创 2024-02-23 21:34:40 · 336 阅读 · 1 评论 -
代码随想录刷题day04|两两交换&删除倒N&链表相交&环形链表
俩俩交互节点和删除倒数第N个节点,很容易写着写着就把指针搞错了,建议写代码一定要画图理解环形链表代码不难,思路很难,不看题解我是完全想不到的。原创 2024-02-24 21:17:12 · 965 阅读 · 1 评论 -
代码随想录刷题day05 | week1总结
1.不要想着写一遍就可以掌握,还是需要多谢几遍,不要偷懒。。2.刷题第一周,还是坚持下来了。希望后面能坚持下去。第一周的题目大部分都是第一次写,都是没有思路的,看了代码随想录b站的讲解,自己多写几遍,其实算法也没有那么难,主要还是要掌握技巧和解题思路,还是要多写多练。3.后面想到其他的再更新本文吧。还是有些题目思路不太记得了,说明还是掌握的不够移除数组元素忘记思路了,双指针怎么用思路不记得了长度最小的子数组:又忘记一部分思路了环形链表:多理解解题思路吧。原创 2024-02-25 23:27:45 · 470 阅读 · 1 评论 -
代码随想录刷题day06|异位词&两个数组的交集&两数之和&快乐数
72+02=49;42+ 92= 97;12+ 02= 1;很明显,按照题意,7是快乐数,一开始比较笨,没有想到7可以表示成 72+02=49,注意0^2^,很重要。快乐数竟然是简单难度的题目,不看题解我是写不了一点的。快乐数抄的题解,暂时写了一下自己的理解,后续还是要多想想。今天好的时间比较久,一共用了4个小时。原创 2024-02-26 22:48:49 · 756 阅读 · 1 评论 -
代码随想录刷题day07|四数相加&赎金信&三数之和&四数之和
三数之和的思路不知道,看了代码随想录的视频才理解的,看完视频后,自己写了一遍还是报错,看了一眼题解,照着代码写才写对的四数之和,关键体会和三数之和的不同地方今天发版日,比较忙,后面俩天有空再来补充下笔记。原创 2024-02-27 23:42:40 · 1010 阅读 · 0 评论 -
代码随想录刷题day08|反转字符串&反转字符串里面的单词&替换数字&右旋转字符串
翻转字符串用了异或法,体会一下和使用临时变量存储并替换的区别。主要好处就是节省内存空间。翻转字符串里面的单词,这题对我来说比较难吧。。明天要刷KMP了,又是全新的东西,加油吧。原创 2024-02-28 21:13:00 · 725 阅读 · 1 评论 -
代码随想录刷题day09|kmp算法理论基础&重复的子字符串
1、next数组就是一个前缀表。2、缀表是用来回退的,它记录了模式串与主串(文本串)不匹配的时候,模式串应该从哪里开始重新匹配。问:怎么跳过中间的aab直接匹配到了后面的aaf呢?找到与其相等的后缀的前缀的后面第一个字母开始匹配。3、前缀表的作用是当前位置匹配失败,找到之前已经匹配上的位置,再重新匹配。也就是说在某个字符失配时,前缀表会告诉你下一步匹配中,模式串应该跳到哪个位置。前缀表就是记录下标i之前(包括i)的字符串中,有多大长度的相同前缀后缀。原创 2024-02-29 23:39:34 · 1301 阅读 · 0 评论 -
代码随想录刷题day10|栈实现队列&队列实现栈
最轻松的一天。主要就是考察API。原创 2024-03-01 20:43:27 · 797 阅读 · 1 评论 -
代码随想录刷题day11|有效的括号&删除字符串重复项&逆波兰表达式
逆波兰表达式就是一种后缀表达式。1、中序表达式平常看的比较舒服的,正常好理解的。(1+2)(3+4)2、后缀表达式12+34+3、计算机如何顺序处理(1+2)*(3+4)计算机其实是使用栈来实现的逆波兰表达式求值这一题,一开始逆波兰表达式是什么不知道。逆波兰表达式求值这一题,也想不到用栈解决,还是看了题解和视频才知道的。明天周日休息一天,再总结一下这周的题目吧,加油。原创 2024-03-02 21:05:06 · 951 阅读 · 1 评论 -
代码随想录刷题day13|滑动窗口的最大值&前K个高频元素(大小堆)
首先要明白,这里的元素是整型数组,其中pair[0]是元素值,pair[1]是该元素的出现频率。它比较两个元素。比较器返回的是第二个元素的频率减去第一个元素的频率的结果。当pair2[1] > pair1[1]时,即第二个元素的频率高于第一个元素的频率,比较器返回一个正数,这意味着pair2应该在pair1之前。因为PriorityQueue是基于比较器的返回值来排序的,返回正数意味着需要交换元素以满足堆的要求,这导致高频率的元素被放置在队列(堆)的前面。``被滑动窗口最大值搞晕了的一天。。原创 2024-03-04 21:48:15 · 977 阅读 · 0 评论 -
代码随想录刷题day14|二叉树的理论基础&二叉树的前中后序递归遍历
比较简单的一天吧。今天发版,二叉树的迭代遍历和二叉树的统一迭代遍历周末来补。原创 2024-03-05 22:29:06 · 694 阅读 · 0 评论 -
代码随想录刷题day15|二叉树的层序遍历&翻转二叉树&对称二叉树
比较顺利的一天,对称二叉树要好好想一下思路。原创 2024-03-06 21:21:21 · 1013 阅读 · 0 评论 -
代码随想录刷题day16|二叉树的最大深度&二叉树的最小深度&完全二叉树的节点个数
第二题不难,但是我想了半天。原创 2024-03-07 23:14:02 · 700 阅读 · 0 评论 -
代码随想录刷题day17|平衡二叉树&二叉树的所有路径&左叶子之和
叶子结点就是没有左右孩子节点的节点。左叶子:一定是父节点的左孩子。二叉树的所有路径看的懵懵的。。。原创 2024-03-08 20:35:01 · 351 阅读 · 0 评论 -
代码随想录刷题day18|找树左下角的值&路径总和&中序后序构造二叉树
力扣的难度怪怪的,昨天的二叉树的所有路径是简单题,今天的第一题树的左下角的值却是中等题,无力吐槽了。中序后序构造二叉树这题好难,不抄题解的话,我根本写不出来。原创 2024-03-09 16:24:29 · 843 阅读 · 0 评论 -
代码随想录刷题day20|最大二叉树&合并二叉树&二叉搜索树中的搜索&验证二叉搜索树
最大二叉树比较难,不太会写合并二叉树、 二叉搜索树中的搜索主要是学习思路,知道思路了代码很简单验证二叉搜索树:主要是要想到中序遍历,结合二叉搜索树,遍历结果的有序性。并且想明白怎么保存前一个节点。原创 2024-03-11 20:29:59 · 463 阅读 · 0 评论 -
代码随想录刷题day21|二叉搜索树的最小绝对差&二叉搜索树中的众数&二叉树的最近公共祖先
二叉搜索树中的众数不太会写,看了题解抄的二叉树的最近公共祖先不太会写,看了题解抄的。原创 2024-03-12 23:23:29 · 913 阅读 · 0 评论 -
代码随想录刷题day22|二叉搜索树的最近公共祖先&二叉搜索树中的插入操作&删除二叉搜索树中的节点
删除二叉搜索树中的节点好难,总是搞不懂 root = root.right;这句话。原创 2024-03-13 21:56:25 · 843 阅读 · 0 评论 -
代码随想录刷题day23|修剪二叉搜索树&将有序数组转换为二叉搜索树&把二叉搜索树转换为累加树
题目都不是很难。今天二叉树刷完了,周末还是要抽时间复习一遍,整理一下。原创 2024-03-14 20:27:01 · 626 阅读 · 0 评论 -
代码随想录刷题day24|回溯理论基础&组合问题
基本概念:回溯法也称作回溯搜索法,是一种穷举搜索方式。在解决问题过程中,回溯法会试图分步去解决一个问题。每一步都基于当前的解尝试进一步的解决,如果发现当前的步骤不能得到有效的解或者达到了问题的边界,它将退回一步,尝试其他可能的路径。就是排除已经考虑过的元素先说结论:如果剩余可选的元素数量加上当前已选择的元素数量小于所需的元素数量 k,那么就没有必要继续搜索了,因为即使选择了所有剩余的元素,也无法满足组合中应有的元素数量。推论,为什么是这样?n是总的元素数量。k是需要选择的元素数量。原创 2024-03-15 21:12:42 · 859 阅读 · 0 评论 -
代码随想录刷题day25|组合总和&电话号码的字母组合
看题目。很显然是小于9而不是小于n首先根据题目要求,取数范围必须要1-9范围内。公式咋推导出来的?去看一下【代码随想录刷题day24|回溯理论基础&组合问题】,可以得到n-i+1>=k-path.size()所以推导出i原创 2024-03-16 16:12:24 · 1009 阅读 · 0 评论 -
代码随想录刷题day27|组合总和II&组合总和II&&分割回文串
看卡尔大佬的图,或者自己画个图,就很好理解了。简单来说,就是当你递归到最后一层往回回溯时,之前的节点,used的状态会重新变回[0]来自gpt的解释:回文是一种特殊的字符串,它从前往后读和从后往前读是完全相同的。回文不仅限于单词和短语,也可以是一系列数字、字符或者其他序列,它们的特点是对称性。这种对称可以是字符级的,也就是说,忽略空格、标点符号和大小写后,字符串的前半部分和后半部分是镜像对称的。分割回文串这题好难,不咋会写,另外吐槽一下,卡尔老师的视频反光好严重。原创 2024-03-18 22:51:30 · 632 阅读 · 0 评论 -
代码随想录刷题day28|复原IP地址&子集问题&&子集II
假设s = “25525511135”,因为如果取到[0,1]的话,那么截取到的第一个字符串是"2,5",那么你肯定插入标点符号是在5后面。所以需要+1回溯的话,肯定是要+2的。因为按上面的说法,5后面多了一个标点符号,那么就需要+2。今天版本发布,更详细的解释晚点更新。复原IP地址比较难吧,不太会写。子集和子集II都不难,和之前的组合问题基本思路是一致的,我一次性就写出来了,有进步。有时候题目能做得出来的话,还是很有成就感的。今天版本发布,更详细的解释晚点更新。原创 2024-03-19 22:18:24 · 745 阅读 · 0 评论 -
代码随想录刷题day29|非递减子序列&全排列&&全排列II
马上就是连续刷题一个月了,加油。原创 2024-03-20 22:10:34 · 590 阅读 · 0 评论 -
代码随想录刷题day30|N皇后&解数独
战略性放弃的一天。。原创 2024-03-21 20:34:00 · 295 阅读 · 0 评论 -
代码随想录刷题day31|分发饼干&摆动序列&最大子序和
摆动序列指的是序列中连续的数字之间的差值严格地交替在正和负之间。比如,序列[1, 7, 4, 9, 2, 5]是一个摆动序列,因为差值序列[+6, -3, +5, -7, +3]正负交替。贪心算法的第一天加油。。贪心算法是一种在每一步选择中都采取在当前状态下最优(即最有利)的选择,以希望导致结果是全局最优的算法策略。它不像动态规划算法那样考虑整个问题的所有可能解,贪心算法只关注如何通过局部最优解来达到全局最优解。原创 2024-03-22 21:09:22 · 1001 阅读 · 0 评论 -
代码随想录刷题day32|买卖股票的最佳时机II&跳跃游戏&跳跃游戏II
跳跃游戏II这鬼题目都看不懂,还是看卡尔的翻译一下才看得懂题目,题意不说人话的,翻译成人话就是计算跳跃到终点的最少步数。跳跃游戏II写不出来,抄的题解。。原创 2024-03-23 22:15:49 · 948 阅读 · 0 评论 -
代码随想录刷题day60|柱状图中的最大矩形
60天完结撒花。。原创 2024-04-20 10:30:10 · 624 阅读 · 0 评论 -
代码随想录刷题day59|下一个更大元素II&接雨水
明天第60天了,一刷要结束了。原创 2024-04-19 19:44:42 · 993 阅读 · 0 评论 -
代码随想录刷题day58|每日温度&下一个更大元素I
单调栈第一天,冲单调栈具体的模拟过程,卡尔的视频讲的很清楚。建议去看视频,这里不画图了,太复杂了。原创 2024-04-18 19:44:25 · 564 阅读 · 0 评论 -
代码随想录刷题day57|回文子串&最长的回文子序列
动态规划了终于结束了。。原创 2024-04-17 20:12:38 · 700 阅读 · 0 评论 -
代码随想录刷题day56|2个字符串的删除操作&编辑距离
明天就要结束动态规划了。。刷了半个月。原创 2024-04-16 19:54:56 · 743 阅读 · 0 评论 -
代码随想录刷题day55|判断子序列&不同的子序列
完美的补上了进度。666又一题hard题。。原创 2024-04-15 21:46:38 · 1014 阅读 · 0 评论 -
代码随想录刷题day53|最长公共子序列&不相交的线&最大子序和
补周六的进度,冲。原创 2024-04-15 21:19:48 · 782 阅读 · 0 评论 -
代码随想录刷题day52|最长递增子序列&最长连续递增序列&最长重复子序列
第三题没想明白。。原创 2024-04-15 20:39:53 · 646 阅读 · 0 评论 -
代码随想录刷题day51|股票买卖(含冷冻期)&股票买卖(含手续费)
麻了。股票系列终于结束了。原创 2024-04-11 20:19:47 · 980 阅读 · 0 评论 -
代码随想录刷题day50|股票买卖的最佳时机III(至多2次买入和卖出)&股票买卖的最佳时机IV(至多K次买入和卖出)
2题hard题,都不会写,但是一看题解,好像也不是完全写不来的感觉。。原创 2024-04-10 19:57:35 · 693 阅读 · 0 评论