文章

1

粉丝

0

获赞

8

访问

308

头像
查找第K小数 题解:用计数数组 C
P1383 北京邮电大学
发布于2026年3月11日 16:59
阅读数 308

运用计数数组来处理:

#include <stdio.h>
int main(){
	int n,k;
	while(scanf("%d",&n)!=EOF){
		int x[n];
		for(int i=0;i<n;i++){
			scanf("%d",&x[i]);
		}
		scanf("%d",&k);
		int count=0;
		int num[10000]={0};         //假设数值小于10000 
		for(int i=0;i<n;i++){
			num[x[i]]=1;            //标记出现的数字
		}
		for(int i=0;i<10001;i++){   //从小到大遍历找第k大的数
			if(num[i]==1){
				count++;
			}
			if(count==k){           
				printf("%d",i);     //输出第k大的数
				break;
			}
		}
				
	}
	return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发