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
思路:遍历比较大小,没什么好讲。
答案:
class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
int i;
for(i=0;i<nums.size();i++)
if(nums[i]>=target) break;
return i;
}
};
反思:
看了一下结果,发现自己居然没有用二分搜索,确实很蠢。果然,没有上过算法课还是有差别的,会写代码没用,脑子一根筋是不行的,还是得好好自学算法,否则思维有局限。
太蠢了,不敢相信自己居然连二分搜索都不用,第一反应就是直接遍历,一定要好好记下来,长点经验。