傻瓜方法,for循环
class Solution {
public int search(int[] nums, int target) {
for(int i = 0;i<nums.length;i++){
if(nums[i]== target){
return i;
}
}
return -1;
}
}
使用二分查找
class Solution {
public int search(int[] nums, int target) {
int left=0;
int right = nums.length-1;
while(left<=right){
int middle = left+(right-left)/2; //防止溢出,等同于(left+right)/2
if(nums[middle]>target){
right=middle-1;
}
else if(nums[middle]<target){
left=middle+1;
}
else{
return middle;
}
}
return -1;
}
}