Skip to content

Commit 6552aef

Browse files
find minimum in rotated sorted array solution
1 parent 0720200 commit 6552aef

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
class Solution {
2+
public int findMin(int[] nums) {
3+
// TC: O(log N)
4+
// SC: O(1)
5+
var left = 1; // N๋ฒˆ ํšŒ์ „ํ•ด ์ด๋ฏธ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ์ผ ๊ฒฝ์šฐ 0์œผ๋กœ ์‹œ์ž‘ํ•˜๋ฉด ๋ฃจํ”„๊ฐ€ ์•ˆ๋๋‚จ. 1๋กœ ์‹œ์ž‘
6+
var right = nums.length-1;
7+
8+
while (left <= right) { // left๊ฐ€ right๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์„๋•Œ๊นŒ์ง€
9+
var mid = (left + right) / 2;
10+
if (nums[mid - 1] > nums[mid]) { // mid - 1 ์š”์†Œ๊ฐ€ mid ๋ณด๋‹ค ๊ฐ’์ด ํฌ๋ฉด ๋ณ€๊ณก์ ์„ ์ฐพ์€ ๊ฒƒ. ๊ทธ๋Œ€๋กœ ๋ฐ˜ํ™˜
11+
return nums[mid];
12+
}
13+
14+
if (nums[mid] > nums[0]) { // ๋ณ€๊ณก์ ์ด ์•„๋‹ˆ๊ณ , 0๋ฒˆ์งธ ์ธ๋ฑ์Šค๋ณด๋‹ค mid ์š”์†Œ๊ฐ€ ๊ฐ’์ด ํฌ๋ฉด ์ •๋ ฌ์ด ์ž˜ ๋˜์–ด ์žˆ๋Š”๊ฒƒ. ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํƒ์ƒ‰
15+
left = mid + 1;
16+
} else {
17+
right = mid - 1;
18+
}
19+
}
20+
21+
return nums[0]; // N๋ฒˆ ํšŒ์ „ํ•ด ์ด๋ฏธ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ์ผ ๊ฒฝ์šฐ 0๋ฒˆ์งธ ์ธ๋ฑ์Šค ์š”์†Œ ๋ฐ˜ํ™˜
22+
}
23+
}

0 commit comments

Comments
ย (0)