leetcode:35. 搜索插入位置


大家好,我是代码君,在BAT从事技术研发多年,利用工作之余重刷leetcode,更多原创文章欢迎关注「代码随想录」。

这是leetcode上第35号题目:搜索插入位置

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

你可以假设数组中无重复元素。

示例 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

思路:

这道题目其实是一道很简单的题,但是为什么通过率相对来说并不高呢,我理解是大家对 边界处理的判断有所失误,导致的。

我这里给出简洁的暴力枚举的方式,暴力解题 不一定时间消耗就非常高,关键看实现的方式,就像是二分查找时间消耗不一定就很低,是一样的。

我的暴力解法效率如下:


leetcode:35. 搜索插入位置

代码如下:

<code>class Solution {
public:
int searchInsert(vector& nums, int target) {
for (int i = 0; i < nums.size(); i++) {
if (nums[i] >= target) { // 一旦发现大于或者等于target的num[i],那么i就是我们要的结果
return i;
}
}
return nums.size(); // 如果target是最大的,或者 nums为空,则返回nums的长度
}
};
/<code>


分享到:


相關文章: