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.
You may assume no duplicates in the array.
Here are few examples.
[1,3,5,6]
, 5 → 2
[1,3,5,6]
, 2 → 1
[1,3,5,6]
, 7 → 4
[1,3,5,6]
, 0 → 0
解决思路:从头扫描数组中的值与target进行对比如果相等返回当前下标,如果小于target扫描下一个,返回第一个大于target的下标,如果不存在则返回数组的长度即插入末位置。(Time:8s)
测试用例:
功能测试:数组中包含target,数组中不包含target(target大于数组中所有值或target小于数组中所有值)
特殊性测试:数组为NULL
class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
if(nums.size()==0) return 0;
for(int i=0; i<nums.size(); ++i)
{
if(nums[i]==target)
{
return i;
}
else if(nums[i]>target)
{
return i;
}
}
return nums.size();
}
};