Skip to content

Commit da19dd6

Browse files
committedMay 11, 2021
Add another js solution to leetcode problem: no.0033
1 parent 33011af commit da19dd6

File tree

3 files changed

+77
-0
lines changed

3 files changed

+77
-0
lines changed
 

‎solution/0000-0099/0033.Search in Rotated Sorted Array/README.md

+28
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,34 @@ public:
133133
};
134134
```
135135
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+
136164
### **...**
137165

138166
```

‎solution/0000-0099/0033.Search in Rotated Sorted Array/README_EN.md

+28
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,34 @@ public:
109109
};
110110
```
111111
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+
112140
### **...**
113141

114142
```

‎solution/0000-0099/0033.Search in Rotated Sorted Array/Solution.js

+21
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,24 @@ var search = function (nums, target) {
1111
}
1212
return -1;
1313
};
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+
};

0 commit comments

Comments
 (0)
Please sign in to comment.