好的,所以我剛開始考慮如何爲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