File tree 3 files changed +77
-0
lines changed
solution/0000-0099/0033.Search in Rotated Sorted Array
3 files changed +77
-0
lines changed Original file line number Diff line number Diff line change @@ -133,6 +133,34 @@ public:
133
133
};
134
134
```
135
135
136
+ ### **JavaScript**
137
+
138
+ ```js
139
+ /**
140
+ * @param {number[]} nums
141
+ * @param {number} target
142
+ * @return {number}
143
+ */
144
+ var search = function (nums, target) {
145
+ let l = 0, r = nums.length - 1;
146
+ if (l > r) return -1;
147
+ while (l <= r) {
148
+ let mid = l + Math.floor((r - l) / 2);
149
+ if (nums[mid] === target) return mid;
150
+ else if (nums[mid] <= nums[r] && target <= nums[r] && target >= nums[mid])
151
+ l = mid + 1;
152
+ else if (nums[mid] >= nums[l] && target <= nums[mid] && target >= nums[l])
153
+ r = mid - 1;
154
+ else if (nums[mid] >= nums[r])
155
+ l = mid + 1;
156
+ else if (nums[mid] <= nums[l])
157
+ r = mid - 1;
158
+ else return -1;
159
+ }
160
+ return -1;
161
+ };
162
+ ```
163
+
136
164
### ** ...**
137
165
138
166
```
Original file line number Diff line number Diff line change @@ -109,6 +109,34 @@ public:
109
109
};
110
110
```
111
111
112
+ ### **JavaScript**
113
+
114
+ ```js
115
+ /**
116
+ * @param {number[]} nums
117
+ * @param {number} target
118
+ * @return {number}
119
+ */
120
+ var search = function (nums, target) {
121
+ let l = 0, r = nums.length - 1;
122
+ if (l > r) return -1;
123
+ while (l <= r) {
124
+ let mid = l + Math.floor((r - l) / 2);
125
+ if (nums[mid] === target) return mid;
126
+ else if (nums[mid] <= nums[r] && target <= nums[r] && target >= nums[mid])
127
+ l = mid + 1;
128
+ else if (nums[mid] >= nums[l] && target <= nums[mid] && target >= nums[l])
129
+ r = mid - 1;
130
+ else if (nums[mid] >= nums[r])
131
+ l = mid + 1;
132
+ else if (nums[mid] <= nums[l])
133
+ r = mid - 1;
134
+ else return -1;
135
+ }
136
+ return -1;
137
+ };
138
+ ```
139
+
112
140
### ** ...**
113
141
114
142
```
Original file line number Diff line number Diff line change @@ -11,3 +11,24 @@ var search = function (nums, target) {
11
11
}
12
12
return - 1 ;
13
13
} ;
14
+
15
+ //binary search
16
+
17
+ var search = function ( nums , target ) {
18
+ let l = 0 , r = nums . length - 1 ;
19
+ if ( l > r ) return - 1 ;
20
+ while ( l <= r ) {
21
+ let mid = l + Math . floor ( ( r - l ) / 2 ) ;
22
+ if ( nums [ mid ] === target ) return mid ;
23
+ else if ( nums [ mid ] <= nums [ r ] && target <= nums [ r ] && target >= nums [ mid ] )
24
+ l = mid + 1 ;
25
+ else if ( nums [ mid ] >= nums [ l ] && target <= nums [ mid ] && target >= nums [ l ] )
26
+ r = mid - 1 ;
27
+ else if ( nums [ mid ] >= nums [ r ] )
28
+ l = mid + 1 ;
29
+ else if ( nums [ mid ] <= nums [ l ] )
30
+ r = mid - 1 ;
31
+ else return - 1 ;
32
+ }
33
+ return - 1 ;
34
+ } ;
You can’t perform that action at this time.
0 commit comments