c#面试题 查找整型数组中重复出现次数最多的数字,次数相同数字按从小到大排序
来源:互联网 发布:什么是js面向对象 编辑:程序博客网 时间:2024/05/21 11:07
题目要求:查找整型数组中重复出现次数最多的数字,次数相同数字按从小到大排序
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 NumsLength = Nums.Length; List<int> results = new List<int>(); for (int i = 0; i < NumsLength; i++) { if (NumsDic.ContainsKey(Nums[i])) { NumsDic[Nums[i]]++; } else { NumsDic.Add(Nums[i], 1); } } int MaxValue = NumsDic.Values.Max(); //方法1 var resultNums = NumsDic.Where(s => s.Value.Equals(MaxValue)); foreach (var resultNum in resultNums) { results.Add(resultNum.Key); } //方法2 foreach (var numdic in NumsDic) { if (numdic.Value == MaxValue) { results.Add(numdic.Key); } } return results; }
0 0
- c#面试题 查找整型数组中重复出现次数最多的数字,次数相同数字按从小到大排序
- 【面试题】数字在排序数组中出现的次数
- 查找数组中重复次数最多的数字
- 数组中重复次数最多的数字
- 数组中出现次数最多的数字
- J2EE面试题之 java如何找出一个int数组中出现次数最多的数字以及出现次数?
- 剑指Offer(第二版)面试题53:在排序数组中查找数字出现的次数
- 面试题:数组中出现次数超过一半的数字
- 面试题:数组中出现次数超过一半的数字
- 查找排序数组中数字出现的次数
- 程序员面试题目总结--数组(三)【旋转数组的最小数字、旋转数组中查找指定数、两个排序数组所有元素中间值、数组中重复次数最多的数、数组中出现次数超过一半的数】
- 一个一维整形数组,若干个数字,统计数组中不同的数字出现的次数,并按照出现频率从小到大排序输出,相同频率按数字大小排序输出
- 面试题32:数字在排序数组中出现的次数
- 面试题38:数字在排序数组中出现的次数
- [剑指offer][面试题38]数字在排序数组中出现的次数
- 微软面试题:在排序数组中,找出给定数字的出现次数
- 面试题38:数字在排序数组中出现的次数
- 面试题整理11 数字在排序数组中出现的次数
- DICOM世界观·第一章 坐标系统
- Markdown使用
- 欢迎使用CSDN-markdown编辑器
- joda,joiner,FluentIterable
- using namespace std 小总结
- c#面试题 查找整型数组中重复出现次数最多的数字,次数相同数字按从小到大排序
- 第二章、搭建Activiti开发环境
- Spring事务详解
- 机器学习总结
- C++的一些基本概念
- js跨域ajax跨域举例图文详述
- spring之注释@Autowired、@Resourse
- Clock In SAI
- mysql中一些常用的命令