File tree Expand file tree Collapse file tree 1 file changed +27
-1
lines changed Expand file tree Collapse file tree 1 file changed +27
-1
lines changed Original file line number Diff line number Diff line change 4
4
5
5
## [ Search In Rotated Sorted Array] ( https://leetcode.com/problems/search-in-rotated-sorted-array )
6
6
7
- A: 判断mid在旋转数组的哪一个顺序部分,利用左右边界的大小判断比较窗口边界 。
7
+ A: 比起常规的顺序数组二分查找多了以此判断: 判断mid在旋转数组的哪一个顺序部分,以把二分的检索范围缩小到有序的子数组 。
8
8
9
9
``` cpp
10
10
class Solution {
@@ -42,6 +42,32 @@ public:
42
42
};
43
43
```
44
44
45
+ ```go
46
+ func search(nums []int, target int) int {
47
+ left, right := 0, len(nums)
48
+ for left < right {
49
+ mid := left + (right - left) / 2
50
+ if nums[mid] == target {
51
+ return mid
52
+ }
53
+ if nums[left] <= nums[mid] {
54
+ if nums[left] <= target && target <= nums[mid] {
55
+ right = mid
56
+ } else {
57
+ left = mid + 1
58
+ }
59
+ } else {
60
+ if nums[mid] <= target && target <= nums[right-1] {
61
+ left = mid + 1
62
+ } else {
63
+ right = mid
64
+ }
65
+ }
66
+ }
67
+ return -1
68
+ }
69
+ ```
70
+
45
71
## [ Find Minimum In Rotated Sorted Array] ( https://leetcode.com/problems/find-minimum-in-rotated-sorted-array )
46
72
47
73
A: 判断mid所属数组部分,调整检索范围,直到检索窗口位于顺序数组。
You can’t perform that action at this time.
0 commit comments