双指针(two pointers)
双指针(two pointers)背景:给出一个递增正整数序列A和正整数M,求序列中不同位置的数a和b,使它们的和为M的所有组合。一种解决方案是遍历两次序列数组,分别是x和y,然后根据它们和进行判断,但这种方法复杂度为O(n*2)。方法:因为是递增序列,我们设两个指针或者点分别指向数组的头(0)和尾(n-1),分别记下标为i,j:1.A[i]+A[j]>M => A[k]+A[j]>M(k>=i) => 若区间[i,j]存在a+b=M,则大的那个数下标绝不是j,则只能
原创
2022-02-02 00:15:09 ·
700 阅读 ·
0 评论