lower_bound(大于等于x的第一个数),upper_bound(大于等于x的最后一个数字)

//core code 
int a[10] = { 1,3,5,9,13,16,22,45,48,49 };
//寻找>=x的第一个位置 Find the first position >= x ,from left to right;
int pos(int x,int l,int r)
{
	int mid;
	while (l < r)
	{
		int mid = (r + l) >> 1;
		//为了避免死循环,也可以加1以后在除以2  
		//In order to avoid an infinite loop, 
		//you can also add 1 and then divide by 2
		if (a[mid] >= x) r = mid - 1; 
		//死循环:就是r依然等于r l依然等于l	
		else l = mid + 1;
	}
	//循环结束-  l r停在了结果的前一个位置。
	//End of loop - l r stopped at the previous position of the result.
	cout << r + 1;
	return 1;
}

//从左到右,寻找<=x的第一个位置  
//From left to right, find the first position where <= x
int pos1(int x, int l, int r)
{
	int mid;
	while (l < r)
	{
		int mid = (l + r) >> 1;
		if (a[mid] <= x) l = mid + 1;
		else r = mid - 1;
	}
	cout << l - 1;
	return 1;
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-04 14:35
点赞 评论 收藏
分享
06-15 02:05
已编辑
南昌航空大学 数据分析师
Eason三木:你如果想干技术岗,那几个发公众号合唱比赛的经历就去掉,优秀团员去掉,求职没用。然后CET4这种不是奖项,是技能,放到下面的专业技能里或者单独列一个英语能力。 另外好好改改你的排版,首行缩进完全没有必要,行间距好好调调,别让字和标题背景黏在一起,你下面说能做高质量PPT你得展现出来啊,你这简历排版我用PPT做的都能比你做的好。 然后自我评价,你如果要干数据工程师,抗压能力强最起码得有吧。
简历中的项目经历要怎么写
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务