当前位置:  开发笔记 > 编程语言 > 正文

计算统计模式

如何解决《计算统计模式》经验,为你挑选了1个好方法。

我目前正在尝试验证是否存在长度为N且整数为k的未排序数组A,是否存在一些发生n/k次或更多次的元素.

我对这个问题的想法是计算模式,然后将其与n/k进行比较.但是,我不知道如何快速计算这种模式.我的最终结果需要是n log(k),但我真的不知道如何做到这一点.我能找到的最快的是 ......



1> dsimcha..:

使用哈希表计算每个值的频率:

uint[int] counts;
foreach(num; myArray) {
     counts[num]++;
}

int mostFrequent;
uint maxCount = 0;
foreach(num, count; counts) {
    if(count > maxCount) { 
        mostFrequent = num;
        maxCount = count;
    }
}

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有