LeetCode - Search Insert Position

本文介绍了一道LeetCode经典题目“搜索插入位置”的解题思路与代码实现。题目要求在有序数组中查找目标值并返回其位置,若不存在则返回插入位置。通过遍历数组比较元素大小来确定目标值的正确位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原题网址:https://leetcode.com/problems/search-insert-position/#/description

Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.

You may assume no duplicates in the array.

Here are few examples.
[1,3,5,6], 5 → 2
[1,3,5,6], 2 → 1
[1,3,5,6], 7 → 4
[1,3,5,6], 0 → 0

题解:

  在有序数组中找到一个数,并返回它在 数组中的位置。如果数组中没有这个数,按照大小顺序插入这个数,并返回插入后这个数所在的数组的位置。

  记有序数组为nums,插入的数为target。依次对比nums中的值与target的大小,当target值小于等于nums[i]时,无论target是否在列表中,我们需要返回的值都是i。

  
这里写图片描述

  需要注意的是,要单独考虑当插入的数在末尾时的情况,此时直接返回列表长度。

附上代码:

class Solution {
public:
    int searchInsert(vector<int>& nums, int target) 
    {
        int i = 0;
        if (target > nums.back()) return nums.size();
        while(nums[i]<target) i += 1;
        return i;
    }
};

转载请附上本文地址:http://blog.youkuaiyun.com/marywbrown/article/details/69055078

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值