Sword 53-I
https://leetcode-cn.com/problems/zai-pai-xu-shu-zu-zhong-cha-zhao-shu-zi-lcof/solution/
由于是有序数组,所有二分找左界线和右界限。
while i <= j, 最终会在j < i 的时候停下来,所以是可以遍历到整个数组的
又因为 j 不变或者减小,i 不变或者增大必然有一种情况会发生,所以循环是必将停止的
if nums[mid] <= target: i = mid + 1 else: j = mid - 1, 这时候 由于 i = mid + 1所以最后停下的 i 肯定是第一个 > target 的右边界
同理,当 nums[mid] < target 时候, i 肯定是肯定是第一个 >= target 的左边界, 等于说这是一个左闭右开的区间
相减就为答案
posted on 2021-02-28 13:45 FriskyPuppy 阅读(20) 评论(0) 编辑 收藏 举报