美文网首页
35. Search Insert Position

35. Search Insert Position

作者: 最尾一名 | 来源:发表于2018-08-31 15:52 被阅读0次

    题目描述

    Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.

    You may assume no duplicates in the array.

    Example 1:

    Input: [1,3,5,6], 5
    Output: 2
    

    Example 2:

    Input: [1,3,5,6], 2
    Output: 1
    

    Example 3:

    Input: [1,3,5,6], 7
    Output: 4
    

    Example 4:

    Input: [1,3,5,6], 0
    Output: 0
    

    JS 解法

    使用二分查找的算法,时间复杂度为 O(logN):

    /**
     * @param {number[]} nums
     * @param {number} target
     * @return {number}
     */
    let searchInsert = function(nums, target) {
        
        if (target < nums[0]) return 0;
        else if (nums[nums.length-1] < target) return nums.length;
        else {
            let left = 0;
            let right = nums.length;
            while(left <= right){
                let mid = Math.floor((left + right) / 2);
                if (target === nums[mid] || (target < nums[mid] && nums[mid-1] < target)) {
                   return mid
                }else if (target < nums[mid]) {
                    right = mid - 1;
                }else {
                    left = mid + 1;
                }
            }
        }
    
    };
    

    相关文章

      网友评论

          本文标题:35. Search Insert Position

          本文链接:https://www.haomeiwen.com/subject/oaaswftx.html