【Leetcode】: first badversion

题意

题意是这样的,给出1-n的东西,其中k(k在1-n之间)及k之后的东西都是坏的,问那个k为多少?

方法

二分查找,找到那个即可,直接看代码就懂了 = =
有些筒子会问为什么不用直接查找,因为数据很大的时候会超时 = =(懂了吧)

代码

// Forward declaration of isBadVersion API.
bool isBadVersion(int version);

class Solution {
public:
    int firstBadVersion(int n) {
        int low = 1,high=n,ver = 0;
        while(low<high){
               ver = low +(high-low)/2;
               if(isBadVersion(ver)){
                   high = ver;
               }
               else low = ver+1;
               if(low==high) return low;
        }
    }
};

不懂的小伙伴问我哦~

你可能感兴趣的:(LeetCode,代码,二分查找,Class)