016_搜索旋转排序数组
知识点:二分搜索
LeetCode第三十三题:https://leetcode-cn.com/problems/search-in-rotated-sorted-array/
语言:GoLang
func search(nums []int, target int) int {
length := len(nums)
left, right := 0, length - 1
if length == 1 {
if nums[0] == target {
return 0
}
return -1
}
for left <= right {
mid := left + (right - left) / 2
if nums[mid] == target {
return mid
}
if nums[left] <= nums[mid] {
if nums[left] <= target && target < nums[mid] {
right = mid - 1
} else {
left = mid + 1
}
} else {
if nums[mid] < target && target <= nums[right] {
left = mid + 1
} else {
right = mid - 1
}
}
}
return -1
}