第一個錯誤的程式碼版本
阿新 • • 發佈:2019-02-16
程式碼庫的版本號是從 1 到 n 的整數。某一天,有人提交了錯誤版本的程式碼,因此造成自身及之後版本的程式碼在單元測試中均出錯。請找出第一個錯誤的版本號。
你可以通過 isBadVersion 的介面來判斷版本號 version 是否在單元測試中出錯,具體介面詳情和呼叫方法請見程式碼的註釋部分。
注意事項
請閱讀上述程式碼,對於不同的語言獲取正確的呼叫 isBadVersion 的方法,比如java的呼叫方式是SVNRepo.isBadVersion(v)
樣例
給出 n=5
呼叫isBadVersion(3),得到false
呼叫isBadVersion(5),得到true
呼叫isBadVersion(4),得到true
你可以通過 isBadVersion 的介面來判斷版本號 version 是否在單元測試中出錯,具體介面詳情和呼叫方法請見程式碼的註釋部分。
注意事項
請閱讀上述程式碼,對於不同的語言獲取正確的呼叫 isBadVersion 的方法,比如java的呼叫方式是SVNRepo.isBadVersion(v)
樣例
給出 n=5
呼叫isBadVersion(3),得到false
呼叫isBadVersion(5),得到true
呼叫isBadVersion(4),得到true
此時我們可以斷定4是第一個錯誤的版本號
/** * public class SVNRepo { * public static boolean isBadVersion(int k); * } * you can use SVNRepo.isBadVersion(k) to judge whether * the kth code version is bad or not. */ class Solution { /** * @param n: An integers. * @return: An integer which is the first bad version. */ public int findFirstBadVersion(int n) { int min = 1, max = n, mid = 0; while(min <= max){ mid = min + (max - min) / 2; if(SVNRepo.isBadVersion(mid)){ max = mid - 1; } else { min = mid + 1; } } return min; } }