First Bad Version — C++ Coding Problem
Difficulty: easy | Category: binary-search
Problem Description
You are a product manager and currently leading a team to develop a new product. Unfortunately, the latest version of your product fails the quality check. Since each version is developed based on the previous version, all the versions after a bad version are also bad. Suppose you have `n` versions `[1, 2, ..., n]` and you want to find out the first bad one, which causes all the following ones to be bad. You are given an API `bool isBadVersion(version)` which returns whether `version` is bad. Implement a function to find the first bad version. You should minimize the number of calls to the API.
Examples
Example 1
Input: n = 5, bad = 4
Output: 4
Explanation: Calls: isBadVersion(3) → false, isBadVersion(5) → true, isBadVersion(4) → true → 4 is the first bad.
Example 2
Input: n = 1, bad = 1
Output: 1