leet code binary search
2024. 11. 20. 19:52ㆍboj
Intuition
단순하게, while.문을 돌면서 중앙의 값이 현재 찾고자 하는 값이 맞는지를 체크하고
아니라면 계속 반복문을 돌도록 함, 만약, 반복문이 끝나도 찾지못한다면 -1 을 리턴하면 간단하게 해결가능하다
Approach
change s and e before finding target
when s bigger than e but cannot find then return -1;
Complexity
- Time complexity:
O(logN) - Space complexity:
O(1)Code
function search(nums: number[], target: number): number {
let s = 0;
let e = nums.length - 1;
if (nums[s] === target) {
return s;
}
if (nums[e] === target) {
return e;
}
while (s <= e) {
const mid = s + Math.floor((e - s) / 2);
if (nums[mid] === target) {
return mid;
}
if (nums[mid] > target) {
e = mid - 1;
} else {
s = mid + 1;
}
}
return -1;
};
'boj' 카테고리의 다른 글
First Bad Version (0) | 2024.12.11 |
---|---|
두개의 스택으로 하나의 큐 만들기 (0) | 2024.12.11 |
leet code invert binary tree (0) | 2024.11.16 |
valid palindrome (0) | 2024.11.14 |
leet code valid-parentheses (4) | 2024.11.13 |