35. 搜索插入位置https://leetcode.cn/problems/search-insert-position/
难度简单1934
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
请必须使用时间复杂度为 O(log n)
的算法。
示例 1:
输入: nums = [1,3,5,6], target = 5 输出: 2
示例 2:
输入: nums = [1,3,5,6], target = 2 输出: 1
示例 3:
输入: nums = [1,3,5,6], target = 7 输出: 4
提示:
1 <= nums.length <= 104
-104 <= nums[i] <= 104
nums
为 无重复元素 的 升序 排列数组-104 <= target <= 104
/**
* @param {number[]} nums
* @param {number} target
* @return {number}
*/
function sortNumber(a, b) {
return a - b;
}
var searchInsert = function (nums, target) {
let str = nums;
let idx = str.indexOf(target); //找不到就返回-1
if (idx > 0) {
// console.log("数组中本来就有这个数,位置在:", idx);
return idx;
} else {
nums.push(target);
nums.sort(sortNumber);
str = nums;
idx = str.indexOf(target);
// console.log("数组中没有这个数,将它添加进去之后的位置是:", idx);
return idx;
}
};