{ "type": "code_options", "author": "https://github.com/begeekmyfriend/leetcode", "source": "solution.md", "exercise_id": "1472af7b2fbd488290d393506127b757", "keywords": "数组,二分查找", "title": "搜索旋转排序数组 II", "desc": [ { "content": "\n
已知存在一个按非降序排列的整数数组 nums
,数组中的值不必互不相同。
在传递给函数之前,nums
在预先未知的某个下标 k
(0 <= k < nums.length
)上进行了 旋转\n,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]]
(下标 从 0\n开始 计数)。例如, [0,1,2,4,4,4,5,6,6,7]
在下标 5
处经旋转后可能变为\n[4,5,6,6,7,0,1,2,4,4]
。\n
给你 旋转后 的数组 nums
和一个整数 target
,请你编写一个函数来判断给定的目标值是否存在于数组中。如果\nnums
中存在这个目标值 target
,则返回 true
,否则返回 false
。\n
\n
示例 1:
\n输入:nums = [2,5,6,0,0,1,2], target = 0\n
输出:true
示例 2:
\n输入:nums = [2,5,6,0,0,1,2], target = 3\n
输出:false
\n
提示:
\n1 <= nums.length <= 5000
-104 <= nums[i] <= 104
nums
在预先未知的某个下标上进行了旋转-104 <= target <= 104
\n
进阶:
\nnums
\n可能包含重复元素。