All Downloads are FREE. Search and download functionalities are using the official Maven repository.

g0201_0300.s0278_first_bad_version.VersionControl Maven / Gradle / Ivy

There is a newer version: 1.38
Show newest version
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