题目链接:Leetcode 35
大致描述一下题目:
给定一个排序数组和一个目标值,返回该值在数组中的位置,如果数组中没有该值,则返回顺序插入的位置。
解题思路:
很简单,就是遍历数组,判断是否相等,还有前一个元素是否小于并且后一个元素是否大于。注意好边界值,即首元素和最后一个元素与目标值的比较。
代码如下:
/*******************************************************************************
Copyright © 2018-20xx Qiao Chuncheng, All Rights Reserved.
File name: 035[搜索插入位置].cpp
Author: Qiao Chuncheng
Version: v1.0
Date: 2018-04-16
*******************************************************************************/
class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
for (int i = 0; i < nums.size(); i++)
{
if (nums[i] == target)
return i;
if (nums[i]<target && nums[i + 1]>target)
{
return i + 1;
}
}
if (nums[0] > target)
return 0;
if (nums[nums.size() - 1] < target)
return nums.size();
return -1;
}
};