代码随想录算法训练营打卡
文章平均质量分 80
夹喵喵的小螃蟹
这个作者很懒,什么都没留下…
展开
-
代码随想录算法训练营打卡day05-1|242 有效的字母异位词(用数组做哈希表)
学习来自《代码随想录》建议: 这道题目,大家可以感受到 数组 用来做哈希表 给我们带来的遍历之处。242 有效的字母异位词(用数组做哈希表)原创 2023-07-17 21:20:04 · 69 阅读 · 0 评论 -
《代码随想录》算法学习60天系列
《代码随想录》算法学习60天系列目录原创 2023-07-09 22:24:10 · 65 阅读 · 0 评论 -
代码随想录算法训练营打卡day04-4|206 环形链表II
算是链表比较有难度的题目,需要多花点时间理解 确定环和找环入口,建议先看视频。原创 2023-07-09 21:43:15 · 123 阅读 · 0 评论 -
代码随想录算法训练营打卡day04-3|24 两两交换链表中的节点
学习来自《代码随想录》用虚拟头结点,这样会方便很多。本题链表操作就比较复杂了,建议大家先看视频,视频里我讲解了注意事项,为什么需要temp保存临时节点。题目链接/文章讲解/视频讲解:题目视频。原创 2023-07-09 16:41:07 · 120 阅读 · 0 评论 -
代码随想录算法训练营打卡day04-2|面试题0207 链表相交
本题没有视频讲解,大家注意 数值相同,不代表指针相同。原创 2023-07-08 22:31:15 · 111 阅读 · 0 评论 -
代码随想录算法训练营打卡day04-1|19 删除链表倒数第n个节点(快慢双指针法)
学习来自《代码随想录》双指针的操作,要注意,删除第N个节点,那么我们当前遍历的指针一定要指向 第N个节点的前一个节点,建议先看视频。原创 2023-07-08 22:24:38 · 128 阅读 · 0 评论 -
代码随想录算法训练营打卡day03-2|206 反转链表(双指针法、递归法)
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。不能申请额外的内存空间。输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1]输入:head = [] 输出:[]✔️反转链表,只要将每个节点的next指针改成指向他的前一个元素,第一个元素指向NULL就可以了。那么如何换向呢?❌想到是遍历链表找到其最后一个元素和倒数第二个元素,开始改写node.next->前一个元素。错误点:单链表无法回溯上一个节点,只能从头查找,元素无法后退,而且这样做会查找很多次。所有要设计从头开始查原创 2023-07-07 16:14:10 · 170 阅读 · 0 评论 -
代码随想录算法训练营打卡day03-1|203 移除链表元素(虚拟头节点)
把特殊情况非特殊化,简化考虑情况。链表要注意判空条件,否则容易出现空指针。原创 2023-07-05 21:45:09 · 109 阅读 · 0 评论 -
代码随想录算法训练营打卡day02-3|977 有序数组的平方(相向双指针法)
本题思路很重要结合题:移除元素,双指针法目前有两种形式1、快慢指针双指针法(快慢指针法):通过一个快指针和慢指针在一个for循环下完成两个for循环的工作。追及方式慢指针slowIndex、快指针fastIndex初始指向nums[0],快指针fastIndex遍历原数组,当快指针检测到某个数符合条件时,把这个数赋值给慢指针,然后快慢指针均向右移动一格,直到快指针遍历完数组,最后,慢指针slowIndex指向新数组末尾的下一个位置,原创 2023-07-04 21:57:31 · 67 阅读 · 0 评论 -
代码随想录算法训练营打卡day02-2|59 螺旋矩阵II(循环不变量)
1、思路不难代码难画矩阵,但是如何画矩阵,需要考虑哪些变量(每圈起始值,遍历的范围),用什么控制画矩阵的循环(圈数),并且有哪些需要特殊处理的情况(n为奇数/偶数)。还有需要遵循一个规则(循环不变量原则)画下来才不会让边界值打架。画个实例图非常重要,更容易分析出每边的范围和变量是怎么变化的。2、改写python过程中,二维列表不会创建,边界值有点不清晰。原创 2023-07-04 16:54:22 · 98 阅读 · 0 评论 -
代码随想录算法训练营打卡day02-1|209 长度最小的子数组(滑动窗口)
1、滑动窗口滑动窗口也可以理解为双指针法的一种!只不过这种解法更像是一个窗口的移动,所以叫做滑动窗口更适合一些。2、代码细节要找最小窗口大小,窗口大小初始化设置成最大值,和后面计算出的窗口值进行比较取最小值。原创 2023-07-01 21:49:26 · 64 阅读 · 0 评论 -
代码随想录算法训练营打卡day01-2|27 移除元素(快慢双指针法)
慢指针slowIndex、快指针fastIndex初始指向nums[0],快指针fastIndex遍历原数组,当快指针检测到某个数符合条件时,把这个数赋值给慢指针,然后快慢指针均向右移动一格,直到快指针遍历完数组,最后,慢指针slowIndex指向新数组末尾的下一个位置,返回慢指针的值即为长度,返回num[0,slowIndex-1]即为新数组。原创 2023-06-30 22:15:38 · 122 阅读 · 0 评论 -
代码随想录算法训练营打卡day01-1|704 二分查找(二分法)
1) 右指针所指的元素不同,原则是右指针表达的位置要包含所有有效数据,否则导致遗漏比较如果是[left, right],则右指针指向要搜寻范围的最后一个元素如果是[left, right),则右指针指向要搜寻范围的最后一个元素的后一个位置2) 循环范围如果是[left, right],循环范围是while (left <= right),因为当left==right,区间[left, right]依然有效,不至于遗漏比较。原创 2023-06-30 15:24:13 · 180 阅读 · 0 评论