https://leetcode-cn.com/problems/search-in-rotated-sorted-array/ 数组、二分查找
没有时间要求
function search(nums: number[], target: number): number {
return nums.indexOf(target)
};
时间要求 logn:二分查找
function search(nums: number[], target: number): number {
let len = nums.length;
if (len === 0) return -1;
if (len === 1) return nums[0] === target ? 0 : -1
let l = 0;
let r = len - 1;
while(l <= r) {
let mid = Math.floor((l + r) / 2)
if (nums[mid] === target) return mid
if (nums[0] <= nums[mid]) {
if (nums[0] <= target && target < nums[mid]) {
r = mid - 1;
} else {
l = mid + 1;
}
} else {
if (nums[mid] < target && target <= nums[len - 1]) {
l = mid + 1;
} else {
r = mid - 1;
}
}
}
return -1
};