分治演算法-眾數問題
Problem Description
給定含有n個元素的多重集合S,每個元素在S中出現的次數稱為該元素的重數。多重集S中重數最大的元素稱為眾數。例如,S={1,2,2,2,3,5}。多重集S的眾數是2,其重數為3。對於給定的由n 個自然陣列成的多重集S,計算S的眾數及其重數。如果出現多個眾數,請輸出最小的那個。
Input
輸入資料的第1行是多重集S中元素個數n(n<1300000);接下來的n行中,每行有一個最多含有5位數字的自然數,。
Output
輸出資料的第1行給出眾數,第2行是重數。
Sample Input
6 1 2 2 2 3 5
Sample Output
2 3
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(){
int a;
scanf("%d",&a);
int arr[a];
int num[65536] = {0};
for(int i = 0 ; i < a ; i++){
scanf("%d",&arr[i]);
num[arr[i]]++;
}
int max = 0;
int flag = 0;
for(int i = 65535 ; i >= 0 ; i--){
if(num[i] >= max){
max = num[i];
flag = i;
}
}
printf("%d\n%d",flag,max);
return 0;
}
相關文章
- 演算法設計--眾數和重數問題(分治法)演算法
- 【20190326】【每天一道演算法題】求眾數(分治演算法)演算法
- ACM 眾數問題ACM
- 眾數問題分析
- 演算法題:求眾數演算法
- 分治演算法-求解棋盤覆蓋問題演算法
- LeetCode169求眾數——分治LeetCode
- 【演算法解題報告】求眾數演算法
- 【演算法】2 由股票收益問題再看分治演算法和遞迴式演算法遞迴
- 分治法求眾數和重數(含檔案輸入輸出)
- 演算法面試題彙總_2求眾數演算法面試題
- 分治演算法演算法
- 找眾數演算法演算法
- 分治思想--快速排序解決TopK問題排序TopK
- 【演算法】已知必存在眾數,求該眾數 -- Boyer-Moore 投票演算法演算法
- 【演算法】求眾數-js解法演算法JS
- 演算法:Majority Element(求眾數)演算法
- 【演算法練習】(8)眾數演算法
- 演算法之絕對眾數演算法
- 優化的求眾數方法 - 摩爾投票演算法(演算法思想+求眾數的三種方法+摩爾投票演算法改進版求眾數 II)優化演算法
- 分治演算法-骨牌鋪方格演算法
- Python演算法:分治法Python演算法
- [演算法] 一些分治演算法
- 演算法學習-CDQ分治演算法
- 質數填表問題的回溯演算法演算法
- 利用分治策略解題
- 以猜數字遊戲引出的分治演算法的理解與思考遊戲演算法
- 【演算法】分治四步走演算法
- 遞迴 & 分治演算法深度理解遞迴演算法
- 一道趣味數學演算法問題演算法
- 求取眾數及重數的演算法實現(Java)演算法Java
- Leetcode刷題——求眾數LeetCode
- 挖坑填數+分治法:快速排序排序
- 遞迴與分治演算法練習遞迴演算法
- 從分治演算法到 Hadoop MapReduce演算法Hadoop
- 演算法第二篇之分治演算法
- 樹分治 - 點分治
- 五大常用演算法之一:分治演算法演算法