62,614
社区成员
发帖
与我相关
我的任务
分享
while (left < right) {
if (left == key || a[left] + a[right] < -value) left++;
else if (right == key || a[left] + a[right] > -value) right--;
else cnt++;
}
里面永远只会执行 else cnt++;
所以程序死循环了。。。
if (left == key || a[left] + a[right] < -value) left++;
else if (right == key || a[left] + a[right] > -value) right--;
第一次循环时,这两个条件都不满足,left right 或者 key 的值后面也没有改变,于是程序就死循环了