17.搜索旋转排序数组-二分查找法
思路
20220304
package main
// @solution-sync:begin
func search(nums []int, target int) int {
l, r := 0, len(nums)-1
for l <= r {
m := l + (r-l)/2
if nums[m] == target {
return m
}
if nums[l] <= nums[m] {
if nums[l] <= target && nums[m] > target {
r = m - 1
} else {
l = m + 1
}
} else {
if nums[m] < target && nums[r] >= target {
l = m + 1
} else {
r = m - 1
}
}
}
return -1
}
Last updated