leetcode算法刷题笔记
文章平均质量分 63
按照《代码随想录》系统地刷leetcode算法题,记录刷题过程,锻炼算法思维,提高代码能力,优化代码风格
兰铁二幼张同学
兰铁二幼张同学@leon-ais
爱好音乐,健身,阅读
展开
-
算法刷题笔记【链表】203.移除链表元素 707.设计链表 206.反转链表
为什么要保存一下这个节点呢,因为接下来要改变 cur->next 的指向了,将cur->next 指向pre ,此时已经反转了第一个节点了。递归法相对抽象一些,但是其实和双指针法是一样的逻辑,同样是当cur为空的时候循环结束,不断将cur指向pre的过程。示例 1:输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1]首先定义一个cur指针,指向头结点,再定义一个pre指针,初始化为null。输入:head = [1,2,6,3,4,5,6], val = 6。原创 2022-09-27 21:55:57 · 425 阅读 · 1 评论 -
算法刷题笔记【数组】59.螺旋矩阵II
给定一个正整数 n,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。这里一圈下来,我们要画每四条边,这四条边怎么画,每画一条边都要坚持一致的左闭右开,或者左开右闭的原则,这样这一圈才能按照统一的规则画下来。原创 2022-09-26 21:59:44 · 193 阅读 · 0 评论 -
算法刷题笔记【数组】209.长度最小的子数组
给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。思路:滑动窗口也可以理解为双指针法的一种,即先确定终止位置,再根据当前子序列和大小的情况,不断调节子序列的起始位置。原创 2022-09-26 15:36:24 · 247 阅读 · 0 评论 -
算法刷题笔记【数组】977.有序数组的平方
给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。数组其实是有序的, 只不过负数平方之后可能成为最大数了,平方的最大值就在数组的两端,最左边或最右边。考虑双指针法,i指向起始位置,j指向终止位置。定义新数组result,和A数组一样大小,k指向result数组终止位置。如果A[i] * A[i] < A[j] * A[j] 那么result[k--] = A[j] * A[j]; 反之result[k--]=A[i]*A[i];原创 2022-09-26 11:31:13 · 154 阅读 · 0 评论 -
算法刷题笔记【数组】02
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。原创 2022-09-22 17:07:01 · 289 阅读 · 0 评论 -
算法刷题笔记【数组】01
704. 二分查找给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。原创 2022-09-21 22:36:40 · 391 阅读 · 1 评论