81.搜索旋转排序数组II
81.搜索旋转排序数组II
题解
在上一题的基础上去重即可
代码
package main func search(nums []int, target int) bool { left, right := 0, len(nums)-1 for left+1 < right { for left < right && nums[left] == nums[left+1] { left++ } for left < right && nums[right] == nums[right-1] { right-- } mid := left + (right-left)/2 if nums[mid] == target { return true } if nums[left] < nums[mid] { //[left,mid] if nums[left] <= target && target < nums[mid] { right = mid } else { left = mid } } else if nums[mid] < nums[right] { //[mid,right] if nums[mid] < target && target <= nums[right] { left = mid } else { right = mid } } } if nums[left] == target || nums[right] == target { return true } return false } func main() { }