반응형
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(알고리즘 문제풀이 접근)
반응형
'알고리즘 풀이' 카테고리의 다른 글
.leetcode(844. Backspace String Compare) (0) | 2022.01.22 |
---|---|
.leetcode(709. To Lower Case) (0) | 2022.01.17 |
.leetcode(112. Path Sum) (0) | 2022.01.16 |
.leetcode(7. Reverse Integer) (0) | 2022.01.16 |
.leetcode(9. Palindrome Number) (0) | 2022.01.10 |