对应力扣704题目
左闭右闭
public class Solution{
public static void main(String[] args){
int[] nums = {1,2,3,4,5,6,7,8,9,10};
int target = 5;
Solution solution = new Soulution();
int result = solution.search( nums, target);
System.out.println("找到值的位置为: "+ result);
}
public int search(int[] nums,int target){
if( target <nums[0] ||target >nums[nums.length -1]){
return -1;
}
int left = 0,right = nums.length -1;
while( right <= left) {//因为左闭右闭,左右的值都可以取,所以可以取等于
int mid = (right + left) /2;
if (nums[mid] == target){
return mid;
}
else if ( nums[mid] < target){
left = mid + 1;
}
else if (nums[mid] > target){
right = mid -1;
}
}
}
}
如果是左闭右开的话,当nums[mid] > target时,right = mid,并且 while( right <left),不能等于