js : binary search

리린·2022년 3월 13일

알고리즘

목록 보기
2/2

문제1

var search = function(nums, target) {
    let lo = 0, hi = nums.length-1;
    while (lo < hi) {
        let mid = lo + Math.floor((hi-lo+1)/2);
        if (target < nums[mid]) {
            hi = mid - 1
        } else {
            lo = mid; 
        }
    }
    return nums[lo]==target?lo:-1;
};

문제2

https://leetcode.com/problems/first-bad-version/discuss/606739/JavaScript-clean-binary-search-solution

var solution = function(isBadVersion) {
    return function(n) {
        let min = null;
        let start = 1;
        let end = n;
        
        while(start <= end) {
            const mid = Math.floor((start + end) / 2);
            
            if(isBadVersion(mid)) {
                min = mid;
                end = mid - 1;
            } else {
                start = mid + 1;
            }
        }
        return min;
    };
};
profile
개발자지망생

0개의 댓글