码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode First Bad Version

时间:2015-09-26 07:00:38      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:

原题链接在这里:https://leetcode.com/problems/first-bad-version/

尽可能少的使用API, 就想到Binary Search. 查中点是不是,若是bad version, 就在左边继续查,若不是bad version, 就在右边继续查找。

Note:  求中点mid时,要用 mid = left +(right - left)/2, 不能使用 mid = (left + right)/2 因为loop 过程中(left + right)可能超过 Integer.MAX_VALUE, overflow了。

AC Java:

 1 /* The isBadVersion API is defined in the parent class VersionControl.
 2       boolean isBadVersion(int version); */
 3 
 4 public class Solution extends VersionControl {
 5     public int firstBadVersion(int n) {
 6         int left = 1;
 7         int right = n;
 8         int res = 0;
 9         while(left<=right){
10             int mid = left + (right - left)/2;
11             if(isBadVersion(mid)){
12                 right = mid-1;
13             }else{
14                 left = mid+1;
15             }
16         }
17         return left;
18     }
19 }

 

LeetCode First Bad Version

标签:

原文地址:http://www.cnblogs.com/Dylan-Java-NYC/p/4839898.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!