Skip to content

Commit 402b6c0

Browse files
feat: 153. Find Minimum in Rotated Sorted Array ํ’€์ด
1 parent 21dedca commit 402b6c0

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
2+
3+
/*
4+
ํšŒ์ „ํ•œ ๋ฐ์ดํ„ฐ์—์„œ ์ œ์ผ ์ž‘์€ ๊ฐ’์„ ์ฐพ๋Š” ๋ฌธ์ œ๋ผ๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•ด์•ผํ•œ๋‹ค.
5+
๊ทธ๋ ‡๊ฒŒ ๋•Œ๋ฌธ์—, left, right๋ฅผ ๊ฐ๊ฐ 0, nums.length -1 ๋กœ ๋‘์–ด์„œ, left์™€ right๊ฐ€ ๊ฐ™์•„์งˆ๋•Œ ํƒˆ์ถœํ•˜๊ณ , ๊ทธ ๊ฐ™์•„์ง„ index์— ๋Œ€ํ•œ nums[index]๋ฅผ ์ฐพ์•„๋‚ด๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค.
6+
*/
7+
/**
8+
*
9+
* @param {*} nums
10+
* @returns
11+
*/
12+
function findMin(nums) {
13+
let left = 0;
14+
let right = nums.length - 1;
15+
16+
while (left !== right) {
17+
let mid = Math.floor((left + right) / 2);
18+
19+
if (nums[mid] > nums[right]) {
20+
// ์ตœ์†Œ๊ฐ’์€ ์˜ค๋ฅธ์ชฝ์— ์žˆ๋‹ค
21+
left = mid + 1;
22+
} else {
23+
// ์ตœ์†Œ๊ฐ’์€ ์™ผ์ชฝ ๊ตฌ๊ฐ„์— ์žˆ๋‹ค (mid๋„ ํฌํ•จ ๊ฐ€๋Šฅ)
24+
right = mid;
25+
}
26+
}
27+
28+
return nums[left]; // ๋˜๋Š” nums[right]๋„ ๊ฐ™์Œ
29+
}
30+
//์‹œ๊ฐ„๋ณต์žก๋„ : ์ด์ง„ํƒ์ƒ‰์„ ์ผ์œผ๋ฏ€๋กœ O(logn)
31+
//๊ณต๊ฐ„๋ณต์žก๋„ : O(1)

0 commit comments

Comments
ย (0)