题目大意:
如题所述
解题思路:
用空间换时间,定义一个大数组,然后输出即可
代码如下:
#include <stdio.h>
#include <string.h>
#define MAX 1000002
int data[MAX];
int main(void)
{
int m,n,i,temp,num_out;
while (scanf("%d%d",&n,&m)!=EOF)
{
memset(data,0,sizeof(data));
for(i=0;i<n;i++)
{
scanf("%d",&temp);
data[temp+500000]++;
}
num_out=0;
for(i=MAX-1;i>0&&m>0;i--)
{
while(data[i]--)
{
printf("%d",i-500000);
num_out++;
if(num_out==m)
break;
else printf(" ");
}
if(num_out==m) break;
}
printf("\n");
}
return 0;
}
本文介绍了一种使用额外空间来提高程序运行效率的方法。通过定义一个足够大的数组来存储数据,可以快速处理输入并输出指定数量的最大元素。这种方法特别适用于需要频繁查找最大或最小值的场景。
5637

被折叠的 条评论
为什么被折叠?



