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
    }
};
複製代碼

忽然想起來前幾天在工做中也用到過這種需求,平時多刷刷題仍是對本身提高頗有幫助的,加油💪


我是月銘澤,歡迎各位童鞋交流指正~

相關文章
相關標籤/搜索