--- tags: leetcode --- # [278. First Bad Version](https://leetcode.com/problems/first-bad-version/) --- # My Solution ## The Key Idea for Solving This Coding Question ## C++ Code ```cpp= // The API isBadVersion is defined for you. // bool isBadVersion(int version); class Solution { public: int firstBadVersion(int n) { int left = 1, right = n; while (left < right) { int middle = left + (right - left) / 2; if (isBadVersion(middle)) { right = middle; } else { left = middle + 1; } } if (isBadVersion(left)) { return left; } return left + 1; } }; ``` ## Time Complexity $O(logn)$ $n$ is the latest released version. ## Space Complexity $O(1)$ # Miscellaneous <!-- # Test Cases ``` 5 4 ``` ``` 1 1 ``` * TLE: ``` 1705930310 1508243771 ``` -->