Search
Duplicate
📒

[LeetCode Top 150] 04-4. Find Minumum in Rotated Sorted Array

상태
완료
수업
Algorithm Solving
주제
LeetCode Top Interview 150
4 more properties
참고

문제해설

NOTE
입력 값 ⇒ 회전된 오름차순 배열
출력 값 ⇒ 배열의 최소값

문제 로직고민

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차이에 로직도 동일해서 참고만 한다.