Skip to content

Commit 4d326dc

Browse files
committed
fix image link
1 parent 34ccf70 commit 4d326dc

File tree

1 file changed

+26
-25
lines changed

1 file changed

+26
-25
lines changed

topics/binary-search/ext-search-in-rotated-sorted-array.md

Lines changed: 26 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ https://leetcode-cn.com/problems/search-in-rotated-sorted-array/
44

55
- [33. 搜索旋转排序数组](#33-搜索旋转排序数组)
66
- [题目描述](#题目描述)
7-
- [方法1: 二分法](#方法1-二分法)
7+
- [方法 1: 二分法](#方法-1-二分法)
88
- [思路](#思路)
99
- [复杂度分析](#复杂度分析)
1010
- [代码](#代码)
@@ -45,7 +45,7 @@ nums 肯定会在某个点上旋转
4545
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
4646
```
4747

48-
## 方法1: 二分法
48+
## 方法 1: 二分法
4949

5050
### 思路
5151

@@ -56,12 +56,12 @@ nums 肯定会在某个点上旋转
5656

5757
也就是说我们选定一个中点之后,数组总会被分为有序和无序两个部分,对于有序部分,我们很容易能判断是否需要继续搜索,如果有序部分不满足搜索条件,那我们就将搜索区间缩小为数组无序部分。
5858

59-
![](https://cdn.jsdelivr.net/gh/suukii/Articles/assets/33_0.png)
59+
![](https://cdn.jsdelivr.net/gh/suukii/91-days-algorithm/assets/33_0.png)
6060

6161
### 复杂度分析
6262

63-
- 时间复杂度:$O(logn)$,n 为数组长度。
64-
- 空间复杂度:$O(1)$。
63+
- 时间复杂度:$O(logn)$,n 为数组长度。
64+
- 空间复杂度:$O(1)$。
6565

6666
### 代码
6767

@@ -73,27 +73,28 @@ JavaScript Code
7373
* @param {number} target
7474
* @return {number}
7575
*/
76-
var search = function(nums, target) {
77-
let l = 0, r = nums.length - 1
78-
while (l <= r) {
79-
const m = l + ((r - l) >> 1)
80-
if (nums[m] === target) return m
81-
82-
// m 位于左侧有序部分
83-
if (nums[l] <= nums[m]) {
84-
// m 大于 target,并且 target 大于左侧最小值,才缩小右边界
85-
if (nums[m] > target && target >= nums[l]) r = m - 1
86-
else l = m + 1;
87-
}
88-
// m 位于右侧有序部分
89-
else {
90-
// m 小于 target,并且 target 小于右侧最大值,才缩小左边界
91-
if (nums[m] < target && target <= nums[r]) l = m + 1;
92-
else r = m - 1;
93-
}
76+
var search = function (nums, target) {
77+
let l = 0,
78+
r = nums.length - 1;
79+
while (l <= r) {
80+
const m = l + ((r - l) >> 1);
81+
if (nums[m] === target) return m;
82+
83+
// m 位于左侧有序部分
84+
if (nums[l] <= nums[m]) {
85+
// m 大于 target,并且 target 大于左侧最小值,才缩小右边界
86+
if (nums[m] > target && target >= nums[l]) r = m - 1;
87+
else l = m + 1;
9488
}
95-
return -1
89+
// m 位于右侧有序部分
90+
else {
91+
// m 小于 target,并且 target 小于右侧最大值,才缩小左边界
92+
if (nums[m] < target && target <= nums[r]) l = m + 1;
93+
else r = m - 1;
94+
}
95+
}
96+
return -1;
9697
};
9798
```
9899

99-
更多题解可以访问:[https://github.com/suukii/91-days-algorithm](https://github.com/suukii/91-days-algorithm)
100+
更多题解可以访问:[https://github.com/suukii/91-days-algorithm](https://github.com/suukii/91-days-algorithm)

0 commit comments

Comments
 (0)