참고
문제해설
문제 로직고민
NOTE
•
이전 문제보다 이 문제가 더 먼저 나와야 했던게 아닌가..
◦
이전 문제에서 활용한 최소값 찾기 알고리즘을 사용하면 되서 크게 고민하지 않았다.
작성코드
NOTE
class Solution {
public int findMin(int[] nums) {
int left = 0;
int right = nums.length -1;
while(left < right){
int pivot = (left+right)/2;
if(nums[pivot] < nums[right]) right = pivot;
else left = pivot + 1;
}
return nums[left];
}
}
Java
복사
정답코드
NOTE
class Solution {
public int findMin(int[] nums) {
int low=1;
int high=nums.length-1;
int min=nums[0];
while(low<=high){
int mid =(low+high)/2;
if(nums[mid]<=min){
high=mid-1;
min=nums[mid];
}else if(nums[mid]>min){
low=mid+1;
}
}
return min;
}
}
Java
복사
메모리를 가장 적게 사용하는 코드
•
1MB차이에 로직도 동일해서 참고만 한다.