藍橋杯 演算法訓練 出現次數最多的整數
阿新 • • 發佈:2019-02-10
這題思路比較簡單,易錯的點是n能取到小於1的數,而n<=0時不用輸出,這一點不知道的話容易把問題想複雜。
還有幾點關於本題:
1,沒有特判n<=0這種情況,其它都對的能得80分,沒過6,7組測試。
2,這題資料沒有超int,int也可以過,但用long long 會0ms過。
3,這題有人用字串存資料,過了,但不是因為它給的資料過大,而是因為,n<=0時這種程式碼輸不出東西來,恰好滿足題意過了。
以上僅供參考,如果有錯誤,歡迎評論。
#include<stdio.h> #define INF 0x3f3f3f3f int a[30]; int main() { int n,sum=0,maxx=0; int ans=0; scanf("%d",&n); if(n<=0) return 0;//坑了許多人吧,n<=0時不輸出 a[0]=-INF; int i; for(i=1;i<=n;++i) { scanf("%d",a+i); if(a[i]!=a[i-1]) { if(sum>maxx) { maxx=sum; ans=a[i-1]; } sum=1; } else ++sum; } if(sum>maxx) { maxx=sum; ans=a[i-1]; } printf("%d\n",ans); return 0; }