1. 问题描述
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
请必须使用时间复杂度为 O(log n) 的算法。
2. 解题思路
循环数组,如果数组元素等于目标值target
,将元素索引i
输出,若不想等,则判断是否数组元素是否大于目标值target
,大于返回索引i
,小于则跳出循环。若循环到最后,仍没有与目标值相等或者比目标值target
大的数组元素(数组元素,都小于目标值target
),则插入索引在数组的最后。
3. 解题
var searchInsert = function(nums, target) {
let result = null;
for(i = 0; i < nums.length; i++) {
if(nums[i] === target || nums[i] > target) {
result = i;
break;
} else {
if(i === nums.length - 1) {
result = i + 1;
}
}
}
return result;
};
(1) 输出:
问题来源:力扣(LeetCode)
链接: https://leetcode-cn.com/problems/search-insert-position/submissions/