Skip to content

Commit 583de8b

Browse files
author
falldio
committed
Go for Search In Rotated Sorted Array
1 parent 89fabf0 commit 583de8b

File tree

1 file changed

+27
-1
lines changed

1 file changed

+27
-1
lines changed

BinarySearch.md

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
## [Search In Rotated Sorted Array](https://leetcode.com/problems/search-in-rotated-sorted-array)
66

7-
A: 判断mid在旋转数组的哪一个顺序部分,利用左右边界的大小判断比较窗口边界
7+
A: 比起常规的顺序数组二分查找多了以此判断:判断mid在旋转数组的哪一个顺序部分,以把二分的检索范围缩小到有序的子数组
88

99
```cpp
1010
class Solution {
@@ -42,6 +42,32 @@ public:
4242
};
4343
```
4444
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+
4571
## [Find Minimum In Rotated Sorted Array](https://leetcode.com/problems/find-minimum-in-rotated-sorted-array)
4672

4773
A: 判断mid所属数组部分,调整检索范围,直到检索窗口位于顺序数组。

0 commit comments

Comments
 (0)