LeetCode之JavaScript解答-35题:Search Insert Position

题目:javascript

给定一个排序数组和一个目标值,若是在数组中找到目标值则返回索引。若是没有,返回到它将会被按顺序插入的位置。java

你能够假设在数组中无重复元素。数组

案例 1:bash

输入: [1,3,5,6], 5
输出: 2
复制代码

案例 2:spa

输入: [1,3,5,6], 2
输出: 1
复制代码

案例 3:code

输入: [1,3,5,6], 7
输出: 4
复制代码

案例 4:排序

输入: [1,3,5,6], 0
输出: 0复制代码

分析:索引

这个题目的难度是easy,确实难度不大,分清楚会有哪几种状况就好啦~ip

1.若是目标值存在于数组,直接返回索引值;get

2.若是目标值不存在于数组,返回应该插入的索引值;

答案:

/** * @param {number[]} nums * @param {number} target * @return {number} */
var searchInsert = function(nums, target) {
    if (nums.indexOf(target) != -1) {
        return nums.indexOf(target); // 若是存在返回索引
    } else {
        for (var i = 0; i<nums.length; i++) {
            if(target < nums[i]) {
            // 比较target和num[i]的大小,若是target小于数组中某一元素,返回这个元素的索引也就是i,i就是target应该插入的位置;
                return i; 
            } 
        }
        return nums.length; // 若是target比全部元素都大,那么target应该插到最后一个,索引能够是nums.length
    }
};
复制代码

忽然想起来前几天在工做中也用到过这种需求,平时多刷刷题仍是对本身提高颇有帮助的,加油💪


我是月铭泽,欢迎各位童鞋交流指正~

相关文章
相关标签/搜索