File tree 6 files changed +214
-3
lines changed
0033.Search in Rotated Sorted Array
0081.Search in Rotated Sorted Array II
6 files changed +214
-3
lines changed Original file line number Diff line number Diff line change 48
48
49
49
```
50
50
51
+ ### ** C++**
52
+
53
+ <!-- 这里可写当前语言的特殊实现逻辑 -->
54
+
55
+ ``` cpp
56
+ class Solution {
57
+ public:
58
+ int search(vector<int >& nums, int target) {
59
+ if(nums.size() < 1) {
60
+ return -1;
61
+ }
62
+ if(nums.size() == 1) {
63
+ return nums[ 0] == target ? 0 : -1;
64
+ }
65
+ int n = nums.size();
66
+ int l = 0, r = n - 1;
67
+ while(l <= r) {
68
+ int mid = (l + r) / 2;
69
+ if(nums[ mid] == target) {
70
+ return mid;
71
+ }
72
+ if(nums[ l] <= nums[ mid] ) {
73
+ if(nums[ l] <= target && target < nums[ mid] ) {
74
+ r = mid - 1;
75
+ }else {
76
+ l = mid + 1;
77
+ }
78
+ }else {
79
+ if(nums[ mid] < target && target <= nums[ r] ) {
80
+ l = mid + 1;
81
+ }else {
82
+ r = mid - 1;
83
+ }
84
+ }
85
+ }
86
+ return -1;
87
+ }
88
+ };
89
+ ```
90
+
51
91
### **...**
52
92
53
93
```
Original file line number Diff line number Diff line change 48
48
49
49
```
50
50
51
+ ### ** C++**
52
+
53
+ <!-- 这里可写当前语言的特殊实现逻辑 -->
54
+
55
+ ``` cpp
56
+ class Solution {
57
+ public:
58
+ int search(vector<int >& nums, int target) {
59
+ if(nums.size() < 1) {
60
+ return -1;
61
+ }
62
+ if(nums.size() == 1) {
63
+ return nums[ 0] == target ? 0 : -1;
64
+ }
65
+ int n = nums.size();
66
+ int l = 0, r = n - 1;
67
+ while(l <= r) {
68
+ int mid = (l + r) / 2;
69
+ if(nums[ mid] == target) {
70
+ return mid;
71
+ }
72
+ if(nums[ l] <= nums[ mid] ) {
73
+ if(nums[ l] <= target && target < nums[ mid] ) {
74
+ r = mid - 1;
75
+ }else {
76
+ l = mid + 1;
77
+ }
78
+ }else {
79
+ if(nums[ mid] < target && target <= nums[ r] ) {
80
+ l = mid + 1;
81
+ }else {
82
+ r = mid - 1;
83
+ }
84
+ }
85
+ }
86
+ return -1;
87
+ }
88
+ };
89
+ ```
90
+
51
91
### **...**
52
92
53
93
```
Original file line number Diff line number Diff line change @@ -8,7 +8,7 @@ class Solution {
8
8
while (left <= right) {
9
9
mid = (left + right) / 2 ;
10
10
if (nums[mid] == target)return mid;
11
-
11
+
12
12
if (nums[mid] < nums[right]) {
13
13
if (nums[right] >= target && nums[mid] < target)left = mid + 1 ;
14
14
else right = mid - 1 ;
@@ -18,7 +18,7 @@ class Solution {
18
18
else left = mid + 1 ;
19
19
}
20
20
}
21
- return -1 ;
21
+ return -1 ;
22
22
}
23
23
};
24
24
@@ -30,7 +30,7 @@ class Solution {
30
30
for (int i = 0 ;i<len;i++) {
31
31
if (target == nums[i])return i;
32
32
}
33
-
33
+
34
34
return -1 ;
35
35
}
36
36
};
Original file line number Diff line number Diff line change 51
51
52
52
```
53
53
54
+ ### ** C++**
55
+
56
+ <!-- 这里可写当前语言的特殊实现逻辑 -->
57
+
58
+ ``` cpp
59
+ class Solution {
60
+ public:
61
+ bool search(vector<int >& nums, int target) {
62
+ if(nums.size() < 1) {
63
+ return false;
64
+ }
65
+ if(nums.size() == 1) {
66
+ return nums[ 0] == target;
67
+ }
68
+ int n = nums.size();
69
+ int l = 0, r = n - 1;
70
+ while(l <= r) {
71
+ int mid = (l + r) / 2;
72
+ if(nums[ mid] == target) {
73
+ return true;
74
+ }
75
+ if(nums[ l] == nums[ mid] && nums[ mid] == nums[ r] ) {
76
+ l++;
77
+ r--;
78
+ }else if(nums[ l] <= nums[ mid] ) {
79
+ //
80
+ if(nums[ l] <= target && target < nums[ mid] ) {
81
+ r = mid - 1;
82
+ }else {
83
+ l = mid + 1;
84
+ }
85
+ }else {
86
+ //
87
+ if(nums[ mid] < target && target <= nums[ r] ) {
88
+ l = mid + 1;
89
+ }else {
90
+ r = mid - 1;
91
+ }
92
+ }
93
+ }
94
+ return false;
95
+ }
96
+ };
97
+ ```
98
+
54
99
### **...**
55
100
56
101
```
Original file line number Diff line number Diff line change 51
51
52
52
```
53
53
54
+ ### ** C++**
55
+
56
+ <!-- 这里可写当前语言的特殊实现逻辑 -->
57
+
58
+ ``` cpp
59
+ class Solution {
60
+ public:
61
+ bool search(vector<int >& nums, int target) {
62
+ if(nums.size() < 1) {
63
+ return false;
64
+ }
65
+ if(nums.size() == 1) {
66
+ return nums[ 0] == target;
67
+ }
68
+ int n = nums.size();
69
+ int l = 0, r = n - 1;
70
+ while(l <= r) {
71
+ int mid = (l + r) / 2;
72
+ if(nums[ mid] == target) {
73
+ return true;
74
+ }
75
+ if(nums[ l] == nums[ mid] && nums[ mid] == nums[ r] ) {
76
+ l++;
77
+ r--;
78
+ }else if(nums[ l] <= nums[ mid] ) {
79
+ //
80
+ if(nums[ l] <= target && target < nums[ mid] ) {
81
+ r = mid - 1;
82
+ }else {
83
+ l = mid + 1;
84
+ }
85
+ }else {
86
+ //
87
+ if(nums[ mid] < target && target <= nums[ r] ) {
88
+ l = mid + 1;
89
+ }else {
90
+ r = mid - 1;
91
+ }
92
+ }
93
+ }
94
+ return false;
95
+ }
96
+ };
97
+ ```
98
+
54
99
### **...**
55
100
56
101
```
Original file line number Diff line number Diff line change
1
+ /* *
2
+ * Author: Moriarty12138
3
+ */
4
+ class Solution {
5
+ public:
6
+ bool search (vector<int >& nums, int target) {
7
+ if (nums.size () < 1 ) {
8
+ return false ;
9
+ }
10
+ if (nums.size () == 1 ) {
11
+ return nums[0 ] == target;
12
+ }
13
+ int n = nums.size ();
14
+ int l = 0 , r = n - 1 ;
15
+ while (l <= r) {
16
+ int mid = (l + r) / 2 ;
17
+ if (nums[mid] == target) {
18
+ return true ;
19
+ }
20
+ if (nums[l] == nums[mid] && nums[mid] == nums[r]) {
21
+ l++;
22
+ r--;
23
+ }else if (nums[l] <= nums[mid]) {
24
+ //
25
+ if (nums[l] <= target && target < nums[mid]) {
26
+ r = mid - 1 ;
27
+ }else {
28
+ l = mid + 1 ;
29
+ }
30
+ }else {
31
+ //
32
+ if (nums[mid] < target && target <= nums[r]) {
33
+ l = mid + 1 ;
34
+ }else {
35
+ r = mid - 1 ;
36
+ }
37
+ }
38
+ }
39
+ return false ;
40
+ }
41
+ };
You can’t perform that action at this time.
0 commit comments