- 博客(4)
- 收藏
- 关注
原创 代码随想录算法训练营第四天| LeetCode203. 移除链表元素、LeetCode707. 设计链表、LeetCode206. 反转链表。
核心思想:直接使用原来的链表来进行删除操作||设置一个虚拟头结点在进行删除操作。核心思想:双指针法||递归法。
2024-06-24 17:05:36
213
原创 代码随想录算法训练营第二天| LeetCode 977.有序数组的平方 、LeetCode 209.长度最小的子数组、 LeetCode 59.螺旋矩阵II
那么数组平方的最大值就在数组的两端,不是最左边就是最右边,不可能是中间,所以可以考虑用两个指针 一个在前一个在后 比较平方后的大小 用一个新数组倒序放入较大的值。窗口的起始位置如何移动:如果当前窗口的值大于等于s了,窗口就要向前移动了(也就是该缩小了)。窗口的结束位置如何移动:窗口的结束位置就是遍历数组的指针,也就是for循环里的索引。题目中数组其实是有序的, 只不过负数平方之后可能成为最大数了。窗口就是 满足其和 ≥ s 的长度最小的 连续 子数组。核心思想:暴力排序法||双指针法。
2024-06-22 18:51:12
192
原创 代码随想录算法训练营第一天| LeetCode704. 二分查找、LeetCode27. 移除元素。
用快慢指针代替两层for循环的操作,快指针的值不为目标值时,慢指针跟上并重新赋值数组,该操作会改变原有数组,但不会改变原有元素的相对位置。两个for循环,外层循环遍历数组 在需要需要移除的元素时,通过判断条件进入内部循环整个搬动后续数组向前移动。时间复杂度:O(n^2) 空间复杂度O(1)思想:主要有暴力循环和快慢双指针两种思路。
2024-06-21 12:58:33
176
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人