在一个上升序列中,查找刚刚小于给定值k的元素。如样例1:2 5 6 8 9 中刚刚比7小的数是6(数据保证存在)
第一行包含一个整数n,为上升序列长度。1 ≤ n ≤ 100000。
第二行包含n个整数,为上升序各元素。所有元素的大小均在0-1,000,000,000之间。
第三行包含一个整数m,为要询问的次数。1 ≤ m ≤ 10000。
接下来m行,每行一个整数,为要询问最接近元素的给定值。所有给定值的大小均在0-1,000,000,000之间。
m行,每行一个整数,为刚刚小于给定值k的元素。
5 2 5 6 8 9 3 7 9 18
6 8 9
C++:
- #include
- using namespace std;
- int n,m,a[100005],k;
- int bs(int low,int high,int k){
- while(low<=high){
- int mid=(low+high)/2;
- if(a[mid]==k)return a[mid-1];
- else if(a[mid]
1; - else if(a[mid]>k)high=mid-1;
- }
- return a[high];
- }
- int main(){
- cin>>n;
- for(int i=1;i<=n;i++)cin>>a[i];
- cin>>m;
- for(int i=1;i<=m;i++){
- cin>>k;
- if(k==a[n])
- cout<-1]<
- else if(k>a[n])
-
-
相关阅读:
POI及EasyExcel【Java提高】
x86 --- 任务隔离特权级保护
delphi中使用CADVCL 10.0 Enterprise控件解析DXF文件生成图片保存到本地
网课查题API接口(免费)
VMware 虚拟化整体方案替代:一举实现架构信创 + 云化转型
【leetcode】【剑指offer Ⅱ】051. 节点之和最大的路径
【虚拟机】根据已有IP获取当前网段的主机范围
QCC Tx 发射器(source)通话(麦克风输入)切换
Docker到底是什么
Mac传文件到云服务器
-
原文地址:https://blog.csdn.net/yangrenrui/article/details/133911686