欢迎来到IT嘟嘟的博客

人生三从境界:昨夜西风凋碧树,独上高楼,望尽天涯路。 衣带渐宽终不悔,为伊消得人憔悴。 众里寻他千百度,蓦然回首,那人却在灯火阑珊处。
扩大
缩小

35. 搜索插入位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

你可以假设数组中无重复元素。

示例 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

 

 

 

#include<iostream>
#include<stack>
#include<algorithm>
#include<string>
#include<vector>
using namespace std;


/*
二分法搜索
*/


class Solution {
public:
	int searchInsert(vector<int>& nums, int target)
	{
		int left = 0, right = nums.size();
		if (nums.back()<target)
		{
			return nums.size();
		}
		while (left < right)
		{
			int mid = left + (right - left) / 2;
			if (nums[mid] < target)
			{
				left = mid + 1;
			}
			else
			{
				right = mid;
			}
		}
		return right;
	}
};

int main()
{
	int a[1000];
	int x;
	int i = 0;
	vector<int> vec;
	int target;
	while (cin >> a[i])
	{

		vec.push_back(a[i]);
		i++;
		x = cin.get();
		if (x == '\n')
			break;

	}
	cin >> target;
	int ans = Solution().searchInsert(vec, target);
	cout << ans<< endl;
	system("pause");
	return 0;
}

  

posted on 2021-06-07 22:04  IT嘟嘟  阅读(20)  评论(0编辑  收藏  举报

导航