# First Bad Version LeetCode Solution | Easy Approach Share:

First Bad Version 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.

Example 1:

```Input: n = 5, bad = 4
Output: 4
Explanation:
Then 4 is the first bad version.
```

Example 2:

```Input: n = 1, bad = 1
Output: 1
```

Constraints:

• `1 <= bad <= n <= 231 - 1`

Time: O(log n)
Space: O(1)

### C++

``````bool isBadVersion(int version);

class Solution {
public:
int l = 1;
int r = n;

while (l < r) {
const int m = l + (r - l) / 2;
r = m;
else
l = m + 1;
}

return l;
}
};
``````

### Java

``````
public class Solution extends VersionControl {
int l = 1;
int r = n;

while (l < r) {
final int m = l + (r - l) / 2;
r = m;
else
l = m + 1;
}

return l;
}
}
``````

### Python

``````
class Solution:
def firstBadVersion(self, n: int) -> int:
l = 1
r = n

while l < r:
m = (l + r) >> 1