目录
什么是二分查找
704.二分查找
题目描述:
代码:
lass Solution { public int search(int[] nums, int target) { int low = 0; int high = nums.length-1; while (low <= high){ int mid = low + (high-low)/2; if( target > nums[mid] ){ low = mid+1 ; } else if(nums[mid]==target){ return mid; } else{ high = mid-1 ; } } return -1; } }
278.第一个错误的版本
题目描述:
代码:
/* The isBadVersion API is defined in the parent class VersionControl. boolean isBadVersion(int version); */ public class Solution extends VersionControl { public int firstBadVersion(int n) { int low = 1; int mid = (n+1)/2; int high = n ; while (low <high){ mid = low+(high-low)/2; if ( !isBadVersion(mid)){ low = mid +1 ; }else{ high = mid ; } } return low; } }
35.插入搜索位置
题目描述:
代码:
class Solution { public int searchInsert(int[] nums, int target) { int low = 0; int high = nums.length-1; while(low <= high){ int mid = low + (high - low)/2 ; if (target < nums[mid]){ high = mid - 1; }else if(target > nums[mid]){ low = mid + 1 ; }else { return mid ; } } return low ; } }