题目描述:
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
示例 1:
输入: [1,3,5,6], 5 输出: 2
示例 2:
输入: [1,3,5,6], 2 输出: 1
示例 3:
输入: [1,3,5,6], 7 输出: 4
示例 4:
输入: [1,3,5,6], 0 输出: 0
解题思路:
小心处理极小值和极大值。然后其他情况,只需要找到第一个大于target的位置,返回该位置即可
C++代码:
class Solution {
public:
int searchInsert(vector& nums, int target) {int len = nums.size();
if (target <= nums[0]) return 0;
// target比数组中最小的还要小,或相等,则插在0位置for (int i = 0;
i < len;
i++){// 遍历
if (nums[i] == target) return i;
// 存在
else if (target < nums[i]) return i;
// 数组中不存在,找到第一个大于target的位置,返回该位置}return len;
// 运行到这,说明target大于数组中所有值,插在len位置}
};
【C++|leetcode 搜索插入位置】
推荐阅读
- 人工智能|干货!人体姿态估计与运动预测
- 分析COMP122 The Caesar Cipher
- 技术|为参加2021年蓝桥杯Java软件开发大学B组细心整理常见基础知识、搜索和常用算法解析例题(持续更新...)
- C语言学习(bit)|16.C语言进阶——深度剖析数据在内存中的存储
- Python机器学习基础与进阶|Python机器学习--集成学习算法--XGBoost算法
- 个人日记|K8s中Pod生命周期和重启策略
- 数据结构与算法|【算法】力扣第 266场周赛
- 数据结构和算法|LeetCode 的正确使用方式
- leetcode|今天开始记录自己的力扣之路
- 人工智能|【机器学习】深度盘点(详细介绍 Python 中的 7 种交叉验证方法!)