Skip to content

Commit df92478

Browse files
committed
add: findMinInRotatedSortedArr solution
1 parent cc9b88c commit df92478

1 file changed

Lines changed: 43 additions & 0 deletions

File tree

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
// math์˜ min์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•
2+
// tc: O(n)
3+
// sc: ์ž˜ ๋ชฐ๋ž๋Š”๋ฐ ๋ชจ๋“  ์š”์†Œ๋ฅผ ํ•จ์ˆ˜ ์ธ์ž๋กœ ํ’€์–ด ์ฝœ์Šคํƒ์— ์˜ฌ๋ฆฐ๋‹ค ํ•˜์—ฌ O(n)์ด ๋œ๋‹ค๊ณ  ํ•จ..
4+
// (๋Œ€์šฉ๋Ÿ‰์˜ ๋ฐฐ์—ด ์‹œ maximum exceed ์—๋Ÿฌ๊ฐ€ ๋‚  ์ˆ˜ ์žˆ์Œ)
5+
const findMin_use_math_min = function (nums) {
6+
return Math.min(...nums);
7+
};
8+
9+
// ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ํ’€์ด.
10+
// tc: O(n)
11+
// sc: O(1)
12+
const findMin_naive = function (nums) {
13+
let min = nums[0];
14+
15+
for (let i = 1; i < nums.length; i++) {
16+
if (nums[i] <= min) {
17+
min = nums[i];
18+
break;
19+
}
20+
}
21+
22+
return min;
23+
};
24+
25+
// ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๋ฌธ์ œ์˜ ์š”๊ตฌ์‚ฌํ•ญ์— ๋งž๋„๋ก ์ค„์—ฌ๋ณธ ํ’€์ด
26+
// tc: O(logn)
27+
// sc: O(1)
28+
const findMin = function (nums) {
29+
let left = 0,
30+
right = nums.length - 1;
31+
32+
while (left < right) {
33+
let mid = Math.floor((left + right) / 2);
34+
35+
if (nums[mid] > nums[right]) {
36+
left = mid + 1;
37+
} else {
38+
right = mid;
39+
}
40+
}
41+
42+
return nums[left];
43+
};

0 commit comments

Comments
ย (0)