알고리즘 풀이
.leetcode(704. Binary Search)
silvergoni
2022. 1. 17. 08:13
반응형
https://leetcode.com/problems/binary-search/
1. 2022.01.17 시도
소요시간: 25분
class Solution {
public int search(int[] nums, int target) {
if (nums == null) {
return -1;
}
return search(nums, target, 0, nums.length-1);
}
private int search(int[] nums, int target, int start, int end) {
if (start > end ) {
return -1;
}
int middle = (start + end)/2;
if (target == nums[middle]) {
return middle;
} else if (target < nums[middle]) {
return search(nums, target, start, middle-1);
} else {
return search(nums, target, middle+1, end);
}
}
}
풀이 접근 과정
가운데를 찾고 targe과 비교하면서 답을 찾아간다. 범위설정이 키포인트다.
느낀점
- 정말 기초중에 기초인데 풀려니 멘붕이 왔다. middle-1, middle+1과 첫 범위설정이 넘나 이해가 잘 안되었다. 왼쪽, 오른쪽 마지막 범위 설정이 어렵네 다시 풀어봐야겠다.
알고리즘 정리노트: .leetcode(알고리즘 문제풀이 접근)
반응형