首页 > 其他 > 详细

Sword 53-I

时间:2021-02-28 15:29:56      阅读:21      评论:0      收藏:0      [点我收藏+]

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 的左边界, 等于说这是一个左闭右开的区间
相减就为答案
 

Sword 53-I

原文:https://www.cnblogs.com/FriskyPuppy/p/14458824.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!