Skip to content
On this page

35. 搜索插入位置

原题链接:LeetCode 35. 搜索插入位置

题目描述

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

请必须使用时间复杂度为 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

难度: Easy


题解代码

javascript
/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number}
 */
var searchInsert = function(nums, target) {
    // 第一个元素比target大
    if (nums[0] > target) return 0
    // 只有一个元素
    if (nums.length === 1) return nums[0] >= target ? 0 : 1
    
    for(let i = 0, len = nums.length; i < len - 1; i ++) {
        if (nums[i] === target) {
            return i
        } else if (nums[i] < target && nums[i + 1] >= target) {
            return i + 1
        }
    }
    // 最后一个元素比target小
    return nums.length
};

技术文档集合