方法一:暴力解法
var search = function(nums, target) {
for(let i=0;i<nums.length;i++){
if(nums[i]===target)return i;
}
return -1;
};
方法二:暴力解法
var search = function(nums, target) {
return nums.indexOf(target);
};
方法三:二分法
var search = function(nums, target) {
if(nums.length===0)return -1;
if(nums.length===1){
return nums[0]===target?0:-1;
}
let left = 0;
let right = nums.length-1;
while(left<=right){
let mid = Math.floor((right-left)/2+left);
let leftTemp = nums[left];
let rightTemp = nums[right];
let midTemp = nums[mid];
if(midTemp===target)return mid;
if(leftTemp===target)return left;
if(rightTemp===target)return right;
if(midTemp>leftTemp){
//左边有序
if(target>leftTemp&&target<midTemp){
right = mid-1;
}else{
left = mid+1;
}
}else{
//右边有序
if(target>midTemp&&target<rightTemp){
left = mid + 1;
}else{
right = mid - 1;
}
}
}
return -1;
};