lc js 35

128 阅读1分钟

仅作备份 效率太低了

/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number}
 */
var searchInsert = function(nums, target) {
    let len = nums.length;
    function findIndex(start = 0, end = len - 1){
        if(nums[start] >=  target){
            return start;
        }
        if(nums[end] === target){
            return end;
        }
        if(nums[end] < target){
            return end + 1;
        }
        let middle = parseInt((start + end) / 2);
        if(target === nums[middle]){
            return middle;
        }
        if(middle > 0 && target > nums[middle - 1] && target < nums[middle]){
            return middle;
        }
        if(middle < (len - 1) && target > nums[middle] && target < nums[middle + 1]){
            return middle + 1;
        }
        if(target < nums[middle]){
            return findIndex(start, middle);
        }
        else{
            return findIndex(middle, end);
        }
    }
    return findIndex();
};