好的,所以我刚开始考虑如何为Paint.NET实现一个新的图形插件,我需要知道如何在二维整数数组中找到最常见的整数。有没有内置的C#方式来做到这一点?或者,有没有人有一个爽快的方式来做到这一点?如何在二维int数组中找到最常见的int?
数组将是这个样子:
300 300 300 300 300 300 300
0 150 300 300 300 300 300
0 0 150 300 300 300 300
0 0 0 0 300 300 300
0 0 0 0 150 300 300
0 0 0 0 0 150 300
0 0 0 0 0 0 300
我需要知道,300是阵列中最常用的号码。如果没有“最常见”,那么只需返回中心数(阵列减少总是奇数x奇数)0.
我将使用“强力”算法来实现这一点,除非您的专家能够出现用更快的东西。
任何帮助将非常感激。
谢谢!
编辑:更多信息...
值几乎总是非常不同的(比我的例子数组更加多样化)。值将在0-360的范围内。根据算法的速度,阵列的大小将为5x5至17x17。对于大图像中的每个像素,结果将会计算一次...所以速度越快越好。 ;)
听起来像一个有趣的问题 - 我敢打赌有一个答案。让我感兴趣。 – Jeffrey 2009-01-29 18:59:39
如果是平局(例如300和125都有相同的命中次数),你会怎么做? – 2009-01-29 19:39:23
@迈克尔,在最初的问题中说:“如果没有”最常见的“,那么只需返回中心号码”,这意味着迄今为止发布的解决方案都不符合要求。 – BoltBait 2009-01-29 19:42:07