文章目录
- 1. 题目信息
- 2. 解题
- 2.1 暴力遍历
- 2.2 二分查找
1. 题目信息
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
示例 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
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 解题
2.1 暴力遍历
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;}
};
2.2 二分查找
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;//不知取哪边,这种写法比较好elsei = mid+1;}return ans;}
};
我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!