给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
示例 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) 链接:https://leetcode-cn.com/problems/search-insert-position 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
int i;
for(i = 0; i < nums.size(); ++i)
{
if(target <= nums[i])
{
return i;
}
}
return i;
}
};
class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
if(target <= nums[0])
return 0;
if(target > nums[nums.size()-1])
return nums.size();
int i = 0, j = nums.size()-1, mid, ans = 1;
while(i <= j)
{
mid = i + (j-i)/2;
if(nums[mid] == target)
return mid;
else if(nums[mid] > target)
j = mid-1, ans = mid;//不知取哪边,这种写法比较好
else
i = mid+1;
}
return ans;
}
};
我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!