Skip to content

Commit 16db9e8

Browse files
Jeehay28Jeehay28
Jeehay28
authored and
Jeehay28
committed
Add find-minimum-in-rotated-sorted-array solution in TypeScript
1 parent c9aa751 commit 16db9e8

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
// Approach 2: binary search
2+
// Time Complexity: ✅ O(log n)
3+
// Space Complexity: O(1)
4+
5+
function findMin(nums: number[]): number {
6+
7+
let left = 0
8+
let right = nums.length - 1
9+
10+
while(left < right) {
11+
12+
const mid = Math.floor((left + right) / 2)
13+
14+
if(nums[mid] > nums[right]) {
15+
// the min must be to the right of mid
16+
left = mid + 1
17+
} else {
18+
// the mins could be mid or to the left
19+
right = mid
20+
}
21+
}
22+
23+
return nums[left]
24+
};
25+
26+
27+
// Approach 1:
28+
// Time Complexity: ❌ O(n)
29+
// Space Complexity: O(1)
30+
31+
// function findMin(nums: number[]): number {
32+
// // input: an array of length n sorted in ascending order
33+
// // rotate: a[n-1], a[0], ..., a[n-2]
34+
// // time complexity allowed: O(log n)
35+
36+
// let first = nums[0];
37+
// let last = nums[nums.length - 1];
38+
// let cnt = 0;
39+
40+
// while (first > last) {
41+
// first = last;
42+
// cnt += 1;
43+
// last = nums[nums.length - 1 - cnt];
44+
// }
45+
46+
// return first;
47+
// }
48+

0 commit comments

Comments
 (0)