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)