g0201_0300.s0278_first_bad_version.VersionControl Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of leetcode-in-java21 Show documentation
Show all versions of leetcode-in-java21 Show documentation
Java-based LeetCode algorithm problem solutions, regularly updated
package g0201_0300.s0278_first_bad_version;
// #Easy #Binary_Search #Interactive #Algorithm_I_Day_1_Binary_Search #Binary_Search_I_Day_5
// #Level_1_Day_7_Binary_Search #2022_03_14_Time_12_ms_(99.50%)_Space_39_MB_(65.09%)
/* The isBadVersion API is defined in the parent class VersionControl.
boolean isBadVersion(int version); */
/**
* 278 - First Bad Version\.
*
* Easy
*
* 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:**
*
* call isBadVersion(3) -> false
* call isBadVersion(5) -> true
* call isBadVersion(4) -> true
* Then 4 is the first bad version.
*
* **Example 2:**
*
* **Input:** n = 1, bad = 1
*
* **Output:** 1
*
* **Constraints:**
*
* * 1 <= bad <= n <= 231 - 1
**/
public class VersionControl {
private int bad;
public VersionControl(int bad) {
this.bad = bad;
}
public boolean isBadVersion(int version) {
return version >= bad;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy