
双指针
hestyle
戎码一生!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LeetCode 移除元素(双指针)
给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元素均为...原创 2019-01-27 11:00:57 · 254 阅读 · 0 评论 -
LeetCode 仅仅反转字母(双指针)
给定一个字符串 S,返回 “反转后的” 字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转。示例 1:输入:"ab-cd"输出:"dc-ba"示例 2:输入:"a-bC-dEf-ghIj"输出:"j-Ih-gfE-dCba"示例 3:输入:"Test1ng-Leet=code-Q!"输出:"Qedo1ct-eeLg=ntse-T!"提示:S.length ...原创 2019-06-28 23:12:06 · 356 阅读 · 0 评论 -
LeetCode 删除链表的倒数第N个节点(O(n) + 图解)
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?算法思路:基本思路就是先便利一边得到链表的长度,然后进行计数移动le原创 2019-01-10 16:32:19 · 306 阅读 · 0 评论 -
LeetCode 三数之和的多种可能(双指针)
给定一个整数数组 A,以及一个整数 target 作为目标值,返回满足 i < j < k 且 A[i] + A[j] + A[k] == target 的元组 i, j, k 的数量。由于结果会非常大,请返回 结果除以 10^9 + 7 的余数。示例 1:输入:A = [1,1,2,2,3,3,4,4,5,5], target = 8输出:20解释:按值枚举(A[i],A...原创 2019-07-08 21:41:37 · 609 阅读 · 0 评论 -
LeetCode 链表的中间结点(快慢指针)
给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = 3, ans.next.v...原创 2019-06-11 09:22:21 · 346 阅读 · 0 评论 -
LeetCode 按奇偶排序数组(双指针)
给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。你可以返回满足此条件的任何数组作为答案。示例:输入:[3,1,2,4]输出:[2,4,3,1]输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。提示:1 <= A.length <= 50000 <= A[i] <= 5000思...原创 2019-06-19 16:40:04 · 567 阅读 · 0 评论 -
LeetCode 救生艇(贪心策略+双指针)
第 i 个人的体重为 people[i],每艘船可以承载的最大重量为 limit。每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit。返回载到每一个人所需的最小船数。(保证每个人都能被船载)。示例 1:输入:people = [1,2], limit = 3输出:1解释:1 艘船载 (1, 2)示例 2:输入:people = [3,2,2,1], limit =...原创 2019-06-13 11:45:55 · 765 阅读 · 0 评论 -
LeetCode 两数之和IV(hash表、双指针)
给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。案例 1:输入: 5 / \ 3 6 / \ \2 4 7Target = 9输出: True案例 2:输入: 5 / \ 3 6 / \ \2 4 7Target = 28输出: False...原创 2019-04-18 09:54:09 · 341 阅读 · 0 评论 -
LeetCode 删除排序链表中的重复元素
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3思路分析:从头到尾扫描链表,对节点判读是否重复,重复进行释放(防止内存泄漏),需要保留的拼接到另外的链表。/** * Definition for ...原创 2019-02-15 21:56:56 · 394 阅读 · 0 评论 -
LeetCode 删除排序数组中的重复项II
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定 nums = [1,1,1,2,2,3],函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3 。你不需要考虑数组中超出新长度后面的元素...原创 2019-02-15 20:15:39 · 374 阅读 · 0 评论 -
LeetCode 删除排序数组中的重复项(双指针)
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums ...原创 2019-01-25 15:15:29 · 259 阅读 · 1 评论 -
LeetCode 按奇偶排序数组II(双指针)
给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数。对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数;当 A[i] 为偶数时, i 也是偶数。你可以返回任何满足上述条件的数组作为答案。示例:输入:[4,2,5,7]输出:[4,5,2,7]解释:[4,7,2,5],[2,5,4,7],[2,7,4,5] 也会被接受。提示:2 <= A.length &l...原创 2019-07-06 21:38:08 · 412 阅读 · 0 评论