求二分最后出现,玄关
  • 板块灌水区
  • 楼主lucy2012
  • 当前回复25
  • 已保存回复27
  • 发布时间2024/5/15 20:28
  • 上次更新2024/5/15 22:21:59
查看原帖
求二分最后出现,玄关
1252442
lucy2012楼主2024/5/15 20:28

题目意思就是求这个数在数组中最后出现的位置,没有输出0;

输入

输入n,m;输入长度为n的数组a;输入m个数,代表查找的数。

输出

按上面的要求输出m个数的查找情况

代码求调

#include<bits/stdc++.h>
using namespace std;
int n,m,l,r,mid,x,a[100010]; 
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++)
        cin>>a[i];
    while(m--){
    	cin>>x;
    	l=1,r=n;
    	while(l<r){
    	    mid=(l+r)/2;
    	    if(a[mid]>x)
    	        r=mid;
    	    else
    	        l=mid+1;
	    }
	    if(a[r]==x)
	        cout<<r<<' ';
	    else
	        cout<<0<<' ';
	}
	return 0;
}

洛谷有这题的话给一下题号呗!(玄关)

2024/5/15 20:28
加载中...