您的位置 首页 golang

Golang刷题Leetcode 81. Search in Rotated Sorted Array II

题目:Search in Rotated Sorted Array II

Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.

(i.e., [0,0,1,2,2,5,6] might become [2,5,6,0,0,1,2]).

You are given a target value to search. If found in the array return true, otherwise return false.

给一个排序但是旋转过的数组,搜索某个元素

思路

依然可以用 二分查找 ,注意到每个点的时候,都要判断方向

code

func search(nums []int, target int) bool {
l := len(nums)
if l == 0 {
return false
}
left,  right  := 0, l-1
for left <= right {
mid := left + (right-left)/2
if nums[mid] == target {
return true
} else if nums[mid] < nums[right] {
if nums[mid] < target && nums[right] >= target {
left = mid + 1
} else {
right = mid - 1
}
} else if nums[mid] > nums[right] {
if nums[left] <= target && nums[mid] > target {
right = mid - 1
} else {
left = mid + 1
}
} else {
right--
}
}
return false
}
 

更多内容请移步我的repo:

文章来源:智云一二三科技

文章标题:Golang刷题Leetcode 81. Search in Rotated Sorted Array II

文章地址:https://www.zhihuclub.com/97221.shtml

关于作者: 智云科技

热门文章

网站地图