c#面试题 查找整型数组中重复出现次数最多的数字,次数相同数字按从小到大排序

解决查找整型数组中重复出现次数最多的数字问题,要求次数相同则按数字从小到大排序。初始思路包括排序后对比,使用Lambda表达式分组计数,最终采用Dictionary存储数字及其出现次数,实现高效解决方案。
摘要由CSDN通过智能技术生成

题目要求:查找整型数组中重复出现次数最多的数字,次数相同数字按从小到大排序

eg: 输入[1, 1,7,7,2, 3, 4, 5, 4 ] 

         输出[1,4,7]


First Idea:1.对数组进行排序

                      2.if(Nums[i]!=Num[i+1]) 来找出重复的数字 并且用变量 计数

                      3.找到次数最多的数字 得出结果


放弃理由:循环次数过多,变量过多。



Next idea:  通过lambada表达式

                     1.对数字根据数字本身分组

                      2.通过group by Count() descending的方式得到出现次数最多的数字

放弃理由:若有重复出现次数相同的数字,难以辨别。


Final Idea: 既然需要两个存储空间,一个存数字,一个存次数,Why not Dictionary?

   public static List<int> MaxAppearNum(int[] Nums)
        {
          
            Array.Sort(Nums);
            Dictionary<int, int> NumsDic = new Dictionary<int, int>();
            int NumsLeng
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值