采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
非常好的问题。
简单说明一下为什么 left -- 不可能得到解:
因为,left -- ,即再去看 left - 1,相当于再访问一个之前访问过的左边界索引上。
但是在之前访问 left - 1 的时候,如果 arr[left - 1] + arr[right] > target,会 right -- 继续去找解。那么这个过程一定已经找到这个解了。只有在 arr[left - 1] + arr[right] < target 的时候,也就是在 left - 1 的时候肯定不会再有解的时,left - 1 才会右移,去看 left。
换句话说,当我们看到 left 的时候,相当于已经明确了,左边界在 [0, left - 1] 区间的时候,肯定没有解了。(否则 left 走不到现在的位置,已经找到解了。)
继续加油!:)
谢谢波波老师!明白了,茅塞顿开!我看课的时候纠结了半天没想明白
登录后可查看更多问答,登录/注册
课程配套大量BAT面试真题,高频算法题解析,强化训练
1.1k 13
1.1k 12
653 11
1.5k 10
1.2k 10