278-e-First Bad Version

来源:互联网 发布:日本外汇储备数据 编辑:程序博客网 时间:2024/05/16 06:56

自从leet收费后就不怎么刷了,因为不少题都上锁,想来高质量的题肯定都要钱,也只能捡捡剩下的刷刷。

找首个坏版本。很明显的二分查找,但程序中要注意mid的求解方式,直接mid = (low + high) / 2会越界,其他没啥。

如下:

bool isBadVersion(int version);int firstBadVersion(int n) {    int result = -1;    int low = 1, high = n;    int mid = 0;    while (low < high) {        mid = low + (high - low) / 2;        if (isBadVersion(mid)) {            high = mid; //因为找的左边界,所以high可以不用-1,否则出循环后需要判断low是否bad        }        else {            low = mid + 1;        }    }    result = low;        return result;}


0 0
原创粉丝点击