原题
https://leetcode.cn/problems/search-in-rotated-sorted-array-ii/description/
思路
二分查找
复杂度
时间:O(log(n))
空间:O(1)
Python代码
class Solution:
def search(self, nums: List[int], target: int) -> bool:
l, r = 0, len(nums) - 1
while l <= r:
mid = (l + r) // 2
if target == nums[mid]:
return True
elif nums[mid] < nums[r]:
if nums[mid] < target <= nums[r]:
l = mid + 1
else:
r = mid - 1
elif nums[mid] > nums[r]:
if nums[l] <= target < nums[mid]:
r = mid - 1
else:
l = mid + 1
else:
r -= 1
return False
Go代码
func search(nums []int, target int) bool {
l, r := 0, len(nums)-1
for l <= r {
mid := (l + r) / 2
if target == nums[mid] {
return true
} else if nums[mid] < nums[r] {
if nums[mid] < target && target <= nums[r] {
l = mid + 1
} else {
r = mid - 1
}
} else if nums[mid] > nums[r] {
if nums[l] <= target && target < nums[mid] {
r = mid - 1
} else {
l = mid + 1
}
} else {
r--
}
}
return false
}
搜索旋转排序数组 II 解析
2020

被折叠的 条评论
为什么被折叠?



