LintCode 60. 搜索插入位置
问题描述
给定一个排序数组和一个目标值,如果在数组中找到目标值则返回索引。如果没有,返回到它将会被按顺序插入的位置。
你可以假设在数组中无重复元素。
样例
[1,3,5,6],5 → 2
[1,3,5,6],2 → 1
[1,3,5,6],7 → 4
[1,3,5,6],0 → 0
问题分析
数组是有序的,只需要遍历一遍数组,判断目标元素是否小于等于数组元素就行了,是就返回该数组元素的位置,不是就说明目标元素大于该数组中的所有元素并返回数组长度,相当于插到数组最后的位置。
代码
class Solution {
public:
/*
* @param A: an integer sorted array
* @param target: an integer to be inserted
* @return: An integer
*/
int searchInsert(vector<int> &A, int target) {
// write your code here
for (int i = 0; i < A.size(); i++) {
if (A[i] >= target) {
return i;
}
}
return A.size();
}
};