C# 找出數組中重複次數最多的數值

來源:互聯網
上載者:User

標籤:素數   http   gif   png   解決   基於   方法   社區   www   

給定一個int數組,裡面存在重複的數值,如何找到重複次數最多的數值呢?

這是在某社區上有人提出的問題,我想到的解決方案是分組。

1、先對數組中的所有元素進行分組,那麼,重複的數值肯定會被放到一組中;

2、將分組進行排序,排序條件是分組中的元素個數;

3、元素數量最多的那個分組中的數值就是重複次數最多的。

 

基於以上思路,可以寫出以下代碼:

            // 樣本數組,90重複4次,1重複2次,3重複3次            int[] arr = { 1, 1, 3, 3, 3, 7, 50, 15, 15, 90, 90, 90, 90, 105 };                        /*             * 先將數組各元素進行分組,             * 然後將每個組中的元素個數按降序排列             */            var res = from n in arr                      group n by n into g                      orderby g.Count() descending                      select g;            // 分組中第一個組就是重複最多的            var gr = res.First();            foreach (int x in gr)            {                Console.Write(" {0}",x);            }

在樣本數組中,1出現了兩次,3出現了三次,15出現兩次,90出現四次。顯然,重複次數最多的是90。
使用Linq語句將源數組中的所有元素,按照元素自身進行分組,然後用Count方法計算每個組中的元素個數,並按降序排列。得到的結果中的第一個分組,其裡面的元素自然是重複次數最多的了。

故輸出結果為:

轉載:http://www.cnblogs.com/tcjiaan/p/4084873.html

C# 找出數組中重複次數最多的數值

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.