程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> <C#>找出數組中重復次數最多的數值

<C#>找出數組中重復次數最多的數值

編輯:C#入門知識

<C#>找出數組中重復次數最多的數值


給定一個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方法計算每個組中的元素個數,並按降序排列。得到的結果中的第一個分組,其裡面的元素自然是重復次數最多的了。       由於我的人品值有限,只能想出這個較為簡單的方法處理,各位觀眾,要是你有更簡便的方法,一定要貼出來,不要“金屋藏嬌”。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved