【算法】双指针
双指针
双指针算法,通过设置两个变量
- 不同方向
- 同一方向,不同速度
例如:
27. 移除元素 - 力扣(LeetCode)
public int removeElement(int[] nums, int val) {
int left=0;//慢指针
int right=0;//快指针
//快指针以正常速度前进
for(;right<nums.length;right++){
if(nums[right]!=val){
//慢指针在满足条件的情况下,才前进
nums[left]=nums[right];
left++;
}
}
return left;
}
相关题目
- 26. 删除有序数组中的重复项 - 力扣(LeetCode)
- 27. 移除元素 - 力扣(LeetCode)
- 283. 移动零 - 力扣(LeetCode)
- 844. 比较含退格的字符串 - 力扣(LeetCode)
- 977. 有序数组的平方 - 力扣(LeetCode)
- 19. 删除链表的倒数第 N 个结点 - 力扣(LeetCode)
还没有评论,来说两句吧...