双指针法求有序数组中元素之差小于等于k的数量
求有序数组中元素之差小于等于k的数量这个问题可以使用双重循环解决,但是时间复杂度过高,采用双指针法优化解答。
假设数组为[1,2,3,4,7,9,10]
设左指针l为0,右指针r为1.
总体思路:
1.使用左右指针,右指针r正常遍历数组nums,左指针l要保证nums[r] - nums[l] <= k
2.对于每一个数nums[r],它和之前的数的距离小于mid的数量为 r - l,把这个值加到cnt中
如图:
结合代码理解:
public class GetCount {
// 求
原创
2021-11-14 10:12:19 ·
590 阅读 ·
0 评论