如果能用二分查找最好用二分查找
邮件收发室堆积了很多大小不一的邮件,小亮派小明要去邮件收发室找一些邮件。小明来到邮件收发室看到N件体积从小到大排列好的邮件。小亮一共询问小明M次,每次询问体积为K的邮件有多少件?
输入
第一行,两个正整数N、M,之间用空格隔开;
第二行,N个正整数,之间用一个空格隔开,表示N件邮件的体积;
第三行,M个正整数,表示M个询问,每次询问体积为K的邮件有多少件。
输出
一行M个正整数,之间用一个空格隔开,分别表示对应每次询问体积为K的邮件的数量,如果没有则输出0。
输入样例 1
5 2
2 3 3 4 5
3 4
输出样例 1
2 1
#include<iostream>
using namespace std;
int count(int t[],int n,int p)
{
int j,counts=0;
for(j=0; j<n; j++)
{
if(t[j]==p)
{
counts++;
}
}
return counts;
}
int main()
{
int n,m,j;
cin >> n>>m;
int t[n],k[m];
for(j=0; j<n; j++)
cin >> t[j];
for(j=0; j<m; j++)
cin >> k[j];
for(j=0; j<m; j++)
cout << count(t,n,k[j])<<" ";
return 0;
}
#include<stdio.h>
//#include<main.h>
int main(void)
{
int *arr,*a;
int N,M,K,num;
//输入N M 分别为件数 次数
scanf("%d %d",&N,&M);
for(int i=0,i<N,i++)
{//输入件的大小
scanf("%d",&arr[i]);
}
for(int i=0,i<K,i++)
{//输入需求件的大小
scanf("%d",&i);
for(int i=0,i<M,i++)
{
if(arr[N]==K]
{a[i]++;
}
printf("%d %d",a[i]);
}
}