Skip to content

Commit 3045f60

Browse files
committed
add solution : 153. Find Minimum in Rotated Sorted Array
1 parent 1b405e0 commit 3045f60

File tree

1 file changed

+28
-0
lines changed
  • find-minimum-in-rotated-sorted-array

1 file changed

+28
-0
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/**
2+
* @link https://leetcode.com/problems/find-minimum-in-rotated-sorted-array/description/
3+
*
4+
* ์ ‘๊ทผ ๋ฐฉ๋ฒ• :
5+
* - O(logn)์œผ๋กœ ํ’€์–ด์•ผ ํ•˜๋‹ˆ๊นŒ ์ด์ง„ ํƒ์ƒ‰ ์ ์šฉ
6+
* - ๋ฐฐ์—ด์˜ start, end ์ธ๋ฑ์Šค๋ฅผ ํ™œ์šฉํ•ด์„œ ์ตœ์†Œ๊ฐ’์ด ์žˆ๋Š” ๋ฐฉํ–ฅ์„ ํƒ์ƒ‰
7+
* - nums[mid] > nums[end]์ด๋ฉด, ์ตœ์†Œ๊ฐ’์ด ์˜ค๋ฅธ์ชฝ์— ์žˆ์œผ๋‹ˆ๊นŒ start๋ฅผ mid+1๋กœ ์ด๋™
8+
* - ๋ฐ˜๋Œ€๋กœ nums[mid] < nums[end] ์ด๋ฉด, ์ตœ์†Œ๊ฐ’์ด ์™ผ์ชฝ์— ์žˆ์œผ๋‹ˆ๊นŒ end๋ฅผ mid๋กœ ์ด๋™
9+
*
10+
* ์‹œ๊ฐ„๋ณต์žก๋„ : O(logn)
11+
* - ํƒ์ƒ‰ ๋ฒ”์œ„๋ฅผ ๊ณ„์† ์ ˆ๋ฐ˜์œผ๋กœ ์ค„์ด๋‹ˆ๊นŒ O(logn)
12+
*
13+
* ๊ณต๊ฐ„๋ณต์žก๋„ : O(1)
14+
* - ๊ณ ์ •๋œ ๋ณ€์ˆ˜๋งŒ ์‚ฌ์šฉ
15+
*/
16+
function findMin(nums: number[]): number {
17+
let start = 0,
18+
end = nums.length - 1;
19+
20+
while (start < end) {
21+
let mid = Math.floor(start + (end - start) / 2);
22+
23+
if (nums[mid] > nums[end]) start = mid + 1;
24+
else end = mid;
25+
}
26+
27+
return nums[start];
28+
}

0 commit comments

Comments
ย (0)