算法中的双指针使用
双指针主要用来遍历数组,两个指针指向不同的元素,从而协同完成任务。
1、有序数组的Tow Sum
题目描述:有序数组,找出两个数组,让和为target
算法思想:使用双指针,一个指针指向值较小的元素,一个指针指向值较大的元素,指向值较小元素的指针从头向后开始遍历,指向较大的指针从后向前开始遍历。
- 如果两个指针指向元素的和sum==target,返回结果位置
- 如果sum>target,则移动较大的指针
- 如果sum<target,则移动较小的指针
1 | public int[] twoSum(int[] numbers,int target){ |
2、两数的平方和
题目描述:判断一个数是否为两个数的平方和
算法思想:还是使用两个指针,一个指针为0,一个指针为和的sqrt
- 如果两个指针指向元素的和powSum==target,返回结果位置
- 如果powSum>target,则移动较大的指针
- 如果powSum<target,则移动较小的指针
1 | public boolean judgeSquerSum(int target){ |
判断链表是否有环
1 | public class Solution { |
- 本文作者: Victor Dan
- 本文链接: https://anonymousdq.github.io/victor.github.io/2019/09/01/双指针/
- 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!