- 博客(8)
- 收藏
- 关注
原创 代码随想录第三天 | 链表 | 反转链表
的指针指向前一个元素,但是由于单向链表中的元素只储存了下一个元素的指针(无法通过当前元素找到上一个元素从而让当前元素指向上一个元素),所以这时我们需要定义一个指针指向当前元素的上一个元素(pre指针),我们只需要“cur.next = pre”就可以达到“局部的反转”。那么现在问题来了,元素连接到上一个元素之后,就断开了连接下个元素的桥梁(因为一个元素中只存一个指针/引用),那么在遍历的时候就无法遍历到下一个元素了,所以我们还需要定义一个指针指向当前元素的下一个元素(temp指针)。
2024-03-22 23:27:38
364
1
原创 代码随想录第三天 | 链表 | 设计链表
以指示链表中的上一个节点。假设链表中的所有节点下标从。你可以选择使用单链表或者双链表,设计并实现自己的链表。考察指针/引用的熟练度,以及对链表的理解。是指向下一个节点的指针/引用。如果是双向链表,则还需要属性。
2024-03-22 19:22:34
716
1
原创 代码随想录第三天 | 链表 | 移除链表元素
int val;力扣题目链接给你一个链表的头节点head和一个整数val,请你删除链表中所有满足的节点,并返回新的头节点。示例 1:示例 2:[]示例 3:[]思路:试想一下,链表中间有一个元素需要删除,那么我需要让当前元素的上一个元素连接当前元素的下一个元素。由于单项链表无法通过当前元素调取上一个元素的指针(每一个元素里只存了下一个元素的指针),那么我们这里还需要用到双指针的想法,定义一个指针指向上一级的元素,定义一个指针指向当前的元素。
2024-03-22 17:58:24
408
1
原创 代码随想录第二天|数组|长度最小的子数组
假如一个数组有N个元素,让每一个元素都当一次子数组末尾的元素,在当子数组末尾元素的同时把数组缩到最短,那我们会得到N个相对最短的子数组,取得一个最短的即可。如果不存在符合条件的子数组,返回。找出该数组中满足其总和大于等于。个正整数的数组和一个正整数。第一次尝试的代码(复杂版本)滑动窗口的想法就是缩和放。,保证让每一个元素都当一次。
2024-03-21 22:19:59
302
1
原创 代码随想录第二天|数组|有序数组的平方
思路:由于是非递减顺序排序的数组,负数平方后可能变为最大值。其实数组的平方最大值只会出现在数组两端,所以选择用双指针的方式进行求解(左指针和右指针)。每次比较左指针和右指针对应数值的平方,将最大值填充到新数组末端。接下来就是调整各种index,再次进入循环,直到结束。定义指针 -> 循环判定条件 -> 更新index。平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]组成的新数组,要求也按。
2024-03-21 17:59:32
387
1
原创 代码随想录第一天|数组|移除元素
示例 1: 给定 nums = [3,2,2,3], val = 3, 函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。示例 2: 给定 nums = [0,1,2,2,3,0,4,2], val = 2, 函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。元素的顺序可以改变。
2024-03-20 13:56:13
596
1
原创 代码随想录第一天 | 数组 | 二分查找
二分查找给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。
2024-03-20 02:01:17
725
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅