Introduction
First Bad Version means:
- finding earliest bad version
inside ordered versions list
Rule:
If a version is bad, all versions after it are also bad.Goal:
- find first bad version
using minimum API calls
Example:
Versions:
1 2 3 4 5
Bad starts at:
4
Output:4
Explanation:
Version 4 is the first version that becomes bad. This problem is one of the most important applications of:
Binary Search Constraints
1 <= n <= 2^31 - 1 Approach : Binary Search Optimization
Explanations:
Explanation:
The idea is:
- versions are sorted
by good and bad pattern - use binary search
to minimize checks
Pattern:
Good Good Good Bad Bad Bad Steps:
- Initialize left pointer.
- Initialize right pointer.
- Find middle version.
- Check if middle is bad.
- Move search range.
- Continue until first bad found.
Conditions:
isBadVersion(mid) == true → move left isBadVersion(mid) == false → move right This approach:
- reduces API calls
- uses divide and conquer
Dry Run
Versions:1 2 3 4 5
Middle:
3
Version 3 is good. Move right.
Middle:
4
Version 4 is bad.
Move left.
Answer:
4
Practice :