OR61. n个数里出现次数大于等于n/2的数
描述
输入n个整数,输出出现次数大于等于数组长度一半的数。输入描述
每个测试输入包含 n个空格分割的n个整数,n不超过100,其中有一个整数出现次数大于等于n/2。输出描述
输出出现次数大于等于n/2的数。示例1
输入:
3 9 3 2 5 6 7 3 2 3 3 3
输出:
3
C 解法, 执行用时: 1ms, 内存消耗: 228KB, 提交时间: 2018-09-15
#include<stdio.h> main() { int i,a[100],j,temp,n=0; while (scanf("%d",&a[n]) != EOF && getchar() != '\n') //循环读入多组整型数据,都以空格分隔。 n++; for(i=0;i<n;i++) //冒泡排序 { for(j=i+1;j<n;j++) { if(a[i]<a[j]) { temp = a[j]; a[j]=a[j+1]; a[j+1] = temp; } } } printf("%d",a[(n+1)/2]); }
C 解法, 执行用时: 1ms, 内存消耗: 248KB, 提交时间: 2021-05-09
#include <stdio.h> int main() { int n[101]={0}; int i=0; int a=0; int len=0; do{ scanf("%d",&a); n[a]++; len++; }while(getchar()!='\n'); for(i=0;i<len;i++) { if(n[i]>=len/2) { printf("%d",i); } } return 0; }