【LeetCode】278. 第一個錯誤的版本

解題思路

二分查找的經典問題:“尋找有序序列中第一個滿足某條件的元素的位置”
時間複雜度:O(logn)。
空間複雜度:O(1)。

代碼

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

class Solution {
public:
	int firstBadVersion(int n) {
		int pLeft = 1, pRight = n;
		while (pLeft < pRight)
		{
			int mid = pLeft + (pRight - pLeft) / 2;
			if (isBadVersion(mid)) {
				pRight = mid;
			}
			else
			{
				pLeft = mid + 1;
			}
		}
		return pLeft;
	}
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章