var search = function(nums, target) {
let l = 0, r = nums.length - 1;
while (l <= r){//二分查找,左边大于右边会停止
let m = (l + r) >> 1;
if (nums[m] == target)return m;
if (nums[l] <= nums[m]){//左边有序,l和m会重合
if (target >= nums[l] && target <= nums[m])//前闭后开
r=m-1;
else
l=m+1;
}
else {//左边没有序,即右边必有序
if (target > nums[m] && target <= nums[r])//前开后闭
l=m+1;
else
r=m-1;
}
}
return -1;
};
JS力扣刷题33. 搜索旋转排序数组
最新推荐文章于 2024-04-18 15:09:00 发布