File tree Expand file tree Collapse file tree 6 files changed +214
-3
lines changed
0033.Search in Rotated Sorted Array
0081.Search in Rotated Sorted Array II Expand file tree Collapse file tree 6 files changed +214
-3
lines changed Original file line number Diff line number Diff line change 4848
4949```
5050
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+
5191### **...**
5292
5393```
Original file line number Diff line number Diff line change 4848
4949```
5050
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+
5191### **...**
5292
5393```
Original file line number Diff line number Diff line change @@ -8,7 +8,7 @@ class Solution {
88 while (left <= right) {
99 mid = (left + right) / 2 ;
1010 if (nums[mid] == target)return mid;
11-
11+
1212 if (nums[mid] < nums[right]) {
1313 if (nums[right] >= target && nums[mid] < target)left = mid + 1 ;
1414 else right = mid - 1 ;
@@ -18,7 +18,7 @@ class Solution {
1818 else left = mid + 1 ;
1919 }
2020 }
21- return -1 ;
21+ return -1 ;
2222 }
2323};
2424
@@ -30,7 +30,7 @@ class Solution {
3030 for (int i = 0 ;i<len;i++) {
3131 if (target == nums[i])return i;
3232 }
33-
33+
3434 return -1 ;
3535 }
3636};
Original file line number Diff line number Diff line change 5151
5252```
5353
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+
5499### **...**
55100
56101```
Original file line number Diff line number Diff line change 5151
5252```
5353
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+
5499### **...**
55100
56101```
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