当前位置:首页 > 题解目录 > 正文内容

【题解】二分法查找左边界

亿万年的星光2年前 (2024-03-20)题解目录2021




参考代码:

# include <bits/stdc++.h>
using namespace std;
int a[100005]; 
int n,m,x; //数组大小,要查找的数大小,每次要查找的数 
int main()
{
//	freopen("1.in","r",stdin);
//	freopen("1.out","w",stdout);	
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	cin>>m;
	while(m--){
		cin>>x;
		int index=lower_bound(a+1,a+n+1,x)-a; //查找第一个大于等于m的位置 
		if(index==n+1){
			//没找到输出-1 
			cout<<-1<<" ";
		}else if(a[index]==x){
			//找到了,输出位置 
			cout<<index<<" "; 
		}else{
			//第一个大于但是不等于的情况也输出-1 
			cout<<-1<<" ";
		}
	} 
	return 0;
}


扫描二维码推送至手机访问。

版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。

分享给朋友:

相关文章

八皇后2

【题目描述】会下国际象棋的人都很清楚:皇后可以在横、竖、斜线上不限步数地吃掉其他棋子。如何将8个皇后放在棋盘上(有8 × 8个方格),使它们谁也不能被吃掉!这就是著名的八皇后问题。对于某个满足要求的8...

字符串比较

【题目描述】给出了n(n<=100000)个由数字和字母组成的字符串(长度小于1000),求与给出字符串相同字符串的个数。【输入描述】第一行是一个数n。接下来n行,每行都是一个字符串。接下来一行...

求正整数2和n之间的完全数

【题目描述】求正整数2和n之间的完全数(一行一个数)。完全数:因子之和等于它本身的自然数,如6=1+2+3【输入描述】输入n【输出描述】一行一个数,按由小到大的顺序。【输入样例】7【输出样例】6#in...

【题解】单词排序

【题目描述】输入一行单词序列,相邻单词之间由一个或者多个空格间隔,请按照字典序输出这些单词,要求重复的单词只输出一次。(区分大小写)【输入描述】一行单词序列,最少一个单词,最多100个单词,每个单词长...

学生分组

【题目描述】有N组学生,给出初始时每组中的学生个数,再给出每组学生人数的上界R和下界L(L≤R),每次你可以在某组中选出一个学生把他安排到另外一组中,问最少要多少次才可以使N组学生的人数都在[L,R]...

八皇后问题

八皇后问题

【题目描述】八皇后问题是一个古老而著名的问题,是回溯算法的典型例题。该问题是十九世纪著名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行...