剑指 Offer 53 - I: 在排序数组中查找数字 I

下面这个问题比较隐蔽,此时count++是多余的,findL和findR相同的情况下,会对中间元素计数两次。这道题的整体思路就是左边界是0,右边界是最后一位数,取一个中间值作为判断条件。当左值小于等于右边值时继续,否则就终止(值为0)

剑指 Offer 53 - I: 在排序数组中查找数字 I_第1张图片

 必须要有等于!想一个特殊情况,当长度为1时呢?

剑指 Offer 53 - I: 在排序数组中查找数字 I_第2张图片

还有一种更简单的方法,

找到第一个比target大的数的位置。

再找到第一个比target-1大的数的位置。

找到两个之后就得出答案。

 

你可能感兴趣的:(#,剑指offer,java)