題目: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
}
};
複製代碼
忽然想起來前幾天在工做中也用到過這種需求,平時多刷刷題仍是對本身提高頗有幫助的,加油💪
我是月銘澤,歡迎各位童鞋交流指正~