这是leetcode上的一道题
33. Search in Rotated Sorted Array
中间的这个旋转
的意思是真没懂
看到下面这个链接,说得比较直白
旋转数组:顾名思义,一个有序的数组,从某个位置分成两部分,然后把这两部分颠倒顺序后形成的新数组。
func search(nums []int, target int) int {
left := 0
right := len(nums)-1
var mid int
for left<=right {
mid = (left+right)/2
if nums[mid]==target {
return mid
}
if nums[mid]<nums[right] {
// the right part is sorted, then just take one condition account
if nums[mid]<target&&target<=nums[right] {
left=mid+1
} else {
right=mid-1
}
} else {
// the left part is sorted, then just take one condition account
if nums[left]<=target&&target<nums[mid] {
right=mid-1
} else {
left=mid+1
}
}
}
return -1
}