week 1 Search Insert Position

这篇博客介绍了LeetCode中的Search Insert Position问题,提供了解题思路和代码实现。通过遍历有序数组,找到目标值的正确插入位置,确保数组仍保持有序。文章给出了四个示例来解释算法的工作原理。
摘要由CSDN通过智能技术生成

Search Insert Position

题目来自leetcode Array部分
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.

Example 1:
Input: [1,3,5,6], 5
Output: 2

Example 2:
Input: [1,3,5,6], 2
Output: 1

Example 3:
Input: [1,3,5,6], 7
Output: 4

Example 4:
Input: [1,3,5,6], 0
Output: 0

解题思路

题目没有限制运行时间,可以通过遍历一遍数组解决这个问题

  • 设数组大小为n,从nums[0]开始,若target<=nums[0],返回0
  • 否则开始遍历数组,若找到i,target等于nums[i],返回i;若target大于nums[i],target小于nums[i+1],并且i小于n-1,返回i+1
  • 还未找到则返回n

代码块

class Solution {
public:
    int searchInsert(vector<int>& nums, int target) {
        if(nums.size() < 1) return 0;
        if(target <= nums[0]) return 0;
        for(int i = 0; i < nums.size(); i++){
            if(nums[i] == target) return i;
            if(nums[i] < target && target < nums[i+1] && i < nums.size()-1)
                return i+1;
        }
        if(nums[nums.size()-1] < target) return nums.size();
    }
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值