반응형
https://leetcode.com/problems/peak-index-in-a-mountain-array/
1. 2022.03.29 시도
소요시간: 4분
class Solution {
public int peakIndexInMountainArray(int[] arr) {
int peak = -1;
for (int i=0; i<arr.length; i++) {
if (peak < arr[i]) {
peak = arr[i];
} else {
return i-1;
}
}
return -1;
}
}
풀이 접근 과정
문제상에서 배열이 보장되어있었다.
순서대로 읽어서 숫자가 작아지는 시점의 바로 전 인덱스를 리턴하면 되겠다 싶었다.
느낀점
- 문제에서 조건을 많이 편하게 잡아줘서 수월하게 풀 수 있었다.
- 이건 바이너리 서치로 풀어보는게 묘미이다.
class Solution {
public int peakIndexInMountainArray(int[] arr) {
int left = 0;
int right = arr.length - 1;
while (left < right) {
int mid = left + (right - left)/2;
if (arr[mid] < arr[mid+1]) {
left = mid + 1;
} else {
right = mid;
}
}
return left;
}
}
알고리즘 정리노트: .leetcode(알고리즘 문제풀이 접근)
반응형
'알고리즘 풀이' 카테고리의 다른 글
.leetcode(917. Reverse Only Letters) (0) | 2022.03.30 |
---|---|
.leetcode(404. Sum of Left Leaves) (0) | 2022.03.30 |
.leetcode(700. Search in a Binary Search Tree) (0) | 2022.03.29 |
.leetcode(148. Sort List) (0) | 2022.03.29 |
.leetcode(771. Jewels and Stones) (0) | 2022.03.29 |