![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
双指针
典型的双指针题目集合
抹茶2077
有效输出,无限进步。
展开
-
27. 移除元素
27. 移除元素: 题目链接 :27. 移除元素 题目:给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 思路: 1、 定义快慢指针 2、 利用原数组原地修改 AC代码: class Solution { public int removeElement(int[] nums, int原创 2021-09-22 22:49:50 · 1526 阅读 · 0 评论 -
15. 三数之和
15. 三数之和: 题目链接 :15. 三数之和 题目:给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 思路: 1、定义三指针,每次循环内保持一个指针不动,其他两个指针在满足所求结果和的基础上移动。 2、去重规则很重要(详见代码中) AC代码: class Solution { public List<List<Intege原创 2021-09-25 14:52:08 · 1636 阅读 · 0 评论 -
283. 移动零
283. 移动零: 题目链接 :283. 移动零 题目:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 思路: 1、双指针 2、数组元素的原地交换 AC代码: class Solution { public void moveZeroes(int[] nums) { //考虑数组为空 if(nums==null) { return ; } in原创 2021-09-25 14:53:00 · 1634 阅读 · 0 评论 -
18. 四数之和
18. 四数之和: 题目链接 :18. 四数之和 题目:给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] : 0 <= a, b, c, d < n a、b、c 和 d 互不相同 nums[a] + nums[b] + nums[c] + nums[d] == target 你可以按 任意顺序 返回答案 。 思路: AC代码: class Sol原创 2021-09-25 15:13:38 · 1718 阅读 · 1 评论