First Bad Version

First Bad Version_第1张图片

这道题暴力解法肯定是从1开始iterate 到n,什么时候isBadVersion, 就返回index。 

Better way。 我感觉可以用binary search 的方法。 因为有一点array本身是sort好的,然后只要这个东西不是bad version,我们可以filter一半的element。


结果没想到Binary的O(Logn)方法竟然都不行。。。

First Bad Version_第2张图片

很悲痛的发现原来我binary search都写错了。。。 mid = low+(high-low)/2 ....

做一个简单的Math  a+(b-a)/2 = a+0.5b-0.5a=0.5a+0.5b=1/2(a+b)

也就是说binary search (high-low)/2 是不可原谅的,最多也就写成(high+low)/2.

T^T 菜如狗


First Bad Version_第3张图片

参考别人的代码! 看看人家写的多么简介。我一开始还有点不太懂他为什么这么做。后来想到有一个search position那道题,也是用Binary的做法,最后return left值。【如果能够找到的话】。

First Bad Version_第4张图片

你可能感兴趣的:(First Bad Version)