约 8 分钟
有序数组求是否存在两数之和为 T,用反向双指针:l=0,r=n-1; while(l<r){int s=a[l]+a[r]; if(s==T) 命中; else if(s<T) l++; else r--;}。和偏小移左增大,偏大移右减小。
l=0,r=n-1; while(l<r){int s=a[l]+a[r]; if(s==T) 命中; else if(s<T) l++; else r--;}
数组 1,3,5,7 找和为 8 的对,指针最终停在哪?
登录 后可看答案