class Solution {
public int search(int[] nums, int target) {
// 方法一:这种方式不是最优解,可以采用二分查找法
// // 升序数组,从前往后比较即可
// // 拿到target所在位置的数后,返回这个数位置的序位号
// int length = nums.length - 1;
// for(int i = 0;i <= length;i++){
// if(nums[i] == target){
// return i;
// }
// }
// return -1;
// 方法二:二分查找
int left = 0;
int right = nums.length;
while(left <= right){
int mid = (left + right)/2;
if(nums[mid] < target){
left = mid + 1;
}else if(nums[mid] > target){
right = mid - 1;
}else{
return mid;
}
}
return -1;
}
}
遇到报错:java.lang.ArrayIndexOutOfBoundsException: Index 6 out of bounds for length 6 at line 20, Solution.search at line 54, __DriverSolution_