File tree Expand file tree Collapse file tree 2 files changed +13
-24
lines changed Expand file tree Collapse file tree 2 files changed +13
-24
lines changed Original file line number Diff line number Diff line change @@ -19,17 +19,12 @@ class Solution {
19
19
int size = num.size ();
20
20
int left = 0 ;
21
21
int right = size - 1 ;
22
- while (left < right) {
23
- int mid = (left + right + 1 ) / 2 ;
24
- if (num[mid] > num[left]) {
25
- if (num[left] < num[right]) {
26
- right = mid - 1 ;
27
- } else {
28
- left = mid;
29
- }
22
+ while (left < right && num[left] >= num[right]) {
23
+ int mid = (left + right) / 2 ;
24
+ if (num[mid] > num[right]) {
25
+ left = mid + 1 ;
30
26
} else {
31
- if (right == mid) left = mid;
32
- else right = mid;
27
+ right = mid;
33
28
}
34
29
}
35
30
return num[left];
Original file line number Diff line number Diff line change @@ -19,22 +19,16 @@ class Solution {
19
19
int size = num.size ();
20
20
int left = 0 ;
21
21
int right = size - 1 ;
22
- while (left < right) {
23
- int mid = (left + right + 1 ) / 2 ;
24
- if (num[mid] > num[left]) {
25
- if (num[left] < num[right]) {
26
- right = mid - 1 ;
27
- } else {
28
- left = mid;
29
- }
22
+ while (left < right && num[left] >= num[right]) {
23
+ int mid = (left + right) / 2 ;
24
+ if (num[mid] > num[right]) {
25
+ left = mid + 1 ;
30
26
} else if (num[mid] < num[left]) {
31
- if (right == mid) left = mid;
32
- else right = mid;
27
+ right = mid;
33
28
} else {
34
- if (num[left] == num[right]) ++left, --right;
35
- else left = mid;
29
+ ++left;
36
30
}
37
31
}
38
- return num[left];
32
+ return num[left];
39
33
}
40
- };
34
+ };
You can’t perform that action at this time.
0 commit comments