在二分查找中,如果所要查询的元素在数组中有多个元素存在的情况呢?例如数组{1,2,3,4,4,4,5,6,7,8}中查找4?

来源:7-13 二分查找_设计测试用例和隐藏10年的bug

心似平原走马易放难收

2017-08-30

写回答

1回答

ccmouse

2017-08-30

这个问题非常好,我原本也有想过说让大家课后练习一下,那既然提出来了,我们可以试着自己写一下,然后递交到 https://leetcode.com/problems/search-for-a-range/description/ 这个题会要查找第一个4和最后一个4。代码递交后如果错误它会显示错误的数据。


====提示分割线===


查找第一个4,只看arr[m]是不够的,我们可以想象找这样两个连着的数,左面(如果有的话)一个小于4,右面一个等于4。这样的话,a, b, m分别代表谁要仔细定义一下并且维持这个定义在循环中不变


1
1
隔壁王爷爷
加两个while循环前后找不久可以了吗……
2020-09-03
共1条回复

Google面试官亲授-Java面试新手尊享课

为面试新手量身定制的Java面试尊享课,解锁“鲤鱼跃龙门”的妙招

2853 学习 · 180 问题

查看课程