Skip to content

Commit d84b261

Browse files
committed
find-minimum-in-rotated-sorted-array solution
1 parent 166b93c commit d84b261

1 file changed

Lines changed: 47 additions & 0 deletions

File tree

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
class Solution {
2+
public int findMin(int[] nums) {
3+
/**
4+
1.problem: ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ๋œ original์œผ๋กœ๋ถ€ํ„ฐ ์ตœ์†ŒํšŸ์ˆ˜๋งŒํผ n๋ฒˆ rotateํ•œ๋‹ค. ์ด ๋ฐฐ์—ด์—์„œ ์ตœ์†Ÿ๊ฐ’ ๊ตฌํ•˜๊ธฐ
5+
2.์กฐ๊ฑด
6+
- ์ฃผ์–ด์ง„ ๋ฐฐ์—ด์€ 1 ~ n ๋ฒˆ rotated ๋˜์—ˆ๋‹ค.
7+
- ๋ฐฐ์—ด์˜ ์›์†Œ๋Š” ๋ชจ๋‘ unique ํ•œ ๊ฐ’
8+
- n = numslength
9+
- O(log n)์œผ๋กœ ํ’€์ดํ• ๊ฒƒ
10+
- n = 1 ~ 5000
11+
3.ํ’€์ด
12+
- bruteforce: nums ๋Œ๋‹ค๊ฐ€ ์ž‘์•„์ง€๋Š” ๋ถ€๋ถ„์ด ์ƒ๊ธฐ๋ฉด ๊ฑฐ๊ธฐ๊ฐ€ rotate ํ•œ ํšŸ์ˆ˜, time : O(n), space: O(1)
13+
- binary search: left, right ํƒ์ƒ‰
14+
15+
[1, 2, 3, 4, 5]
16+
[5, 1, 2, 3, 4] -> 1
17+
[4, 5, 1, 2, 3] -> 2
18+
[3, 4, 5, 1, 2] -> 3 : index 3 ๊ตฌ๊ฐ„์—์„œ ์ˆซ์ž ์ž‘์•„์ง
19+
*/
20+
int answer = nums[0];
21+
int n = nums.length;
22+
if(n == 1) return answer;
23+
24+
//sol 1)
25+
// for(int i = 0; i < n-1; i++) {
26+
// if(nums[i] > nums[i+1]) {
27+
// return nums[i+1];
28+
// }
29+
// }
30+
//return answer;
31+
32+
//sol 2)
33+
int left = 0;
34+
int right = n - 1;
35+
while(left < right) {
36+
int mid = (left + right) / 2;
37+
if(nums[mid] > nums[right]) {
38+
left = mid + 1;
39+
} else {
40+
right = mid;
41+
}
42+
}
43+
44+
return nums[left];
45+
46+
}
47+
}

0 commit comments

Comments
ย (0)