Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit ef17e69

Browse files
committed
solve 81.搜索旋转排序数组-ii
1 parent bace480 commit ef17e69

File tree

1 file changed

+74
-0
lines changed

1 file changed

+74
-0
lines changed
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
/*
2+
* @lc app=leetcode.cn id=81 lang=java
3+
*
4+
* [81] 搜索旋转排序数组 II
5+
*
6+
* https://leetcode-cn.com/problems/search-in-rotated-sorted-array-ii/description/
7+
*
8+
* algorithms
9+
* Medium (35.56%)
10+
* Likes: 187
11+
* Dislikes: 0
12+
* Total Accepted: 32.3K
13+
* Total Submissions: 90.3K
14+
* Testcase Example: '[2,5,6,0,0,1,2]\n0'
15+
*
16+
* 假设按照升序排序的数组在预先未知的某个点上进行了旋转。
17+
*
18+
* ( 例如,数组 [0,0,1,2,2,5,6] 可能变为 [2,5,6,0,0,1,2] )。
19+
*
20+
* 编写一个函数来判断给定的目标值是否存在于数组中。若存在返回 true,否则返回 false。
21+
*
22+
* 示例 1:
23+
*
24+
* 输入: nums = [2,5,6,0,0,1,2], target = 0
25+
* 输出: true
26+
*
27+
*
28+
* 示例 2:
29+
*
30+
* 输入: nums = [2,5,6,0,0,1,2], target = 3
31+
* 输出: false
32+
*
33+
* 进阶:
34+
*
35+
*
36+
* 这是 搜索旋转排序数组 的延伸题目,本题中的 nums 可能包含重复元素。
37+
* 这会影响到程序的时间复杂度吗?会有怎样的影响,为什么?
38+
*
39+
*
40+
*/
41+
42+
// @lc code=start
43+
class Solution {
44+
public boolean search(int[] nums, int target) {
45+
int left = 0;
46+
int right = nums.length - 1;
47+
48+
while (left <= right) {
49+
int mid = left + (right - left) / 2;
50+
if (nums[mid] == target) {
51+
return true;
52+
}
53+
if (nums[left] == nums[mid]) {
54+
left++;
55+
} else if (nums[left] < nums[mid]) {
56+
if (nums[left] <= target && target < nums[mid]) {
57+
right = mid - 1;
58+
} else {
59+
left = mid + 1;
60+
}
61+
} else if (nums[left] > nums[mid]) {
62+
if (nums[mid] < target && target <= nums[right]) {
63+
left = mid + 1;
64+
} else {
65+
right = mid - 1;
66+
}
67+
}
68+
}
69+
70+
return false;
71+
}
72+
}
73+
// @lc code=end
74+

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /