如何返回C#中包含最大元素的数组?
发布时间:2020-12-15 08:48:59 所属栏目:百科 来源:网络整理
导读:我有多个int数组: 1) [1,202,4,55]2) [40,7]3) [2,48,5]4) [40,8,90] 我需要获得所有位置中数字最大的数组.在我的情况下,这将是阵列#4.说明: 数组#2,#4在第一个位置具有最大数字,因此在第一次迭代后将返回这两个数组([40,7]和[40,90]) 现在在比较来自前一
我有多个int数组:
1) [1,202,4,55] 2) [40,7] 3) [2,48,5] 4) [40,8,90] 我需要获得所有位置中数字最大的数组.在我的情况下,这将是阵列#4.说明: >数组#2,#4在第一个位置具有最大数字,因此在第一次迭代后将返回这两个数组([40,7]和[40,90]) 你能建议一个有效的算法吗?与Linq合作会更好. UPDATE 长度没有限制,但只要任何位置的某个数字更大,所以此数组是最大的. 解决方法
LINQ效率不高(例如见
LINQ vs FOREACH vs FOR).但是,它允许很好的可读性.如果您确实需要比LINQ提供的更好的性能,则应该编写没有LINQ的代码.但是,在您知道需要之前,不应该进行优化.
这不是专门针对性能而调整的,而是针对您的问题的清晰,可读的解决方案: static int[] FindLargestArray(int[][] arrays) { for (int i = 0; arrays.Length > 1 && i < arrays.Max(x => x.Length); i++) { var maxVal = arrays.Where(x => i < x.Length).Max(x => x[i]); arrays = arrays.Where(x => i < x.Length && x[i] == maxVal).ToArray(); } return arrays[0]; //if more than one array,they're the same,so just return the first one regardless } 根据具体情况,这可能足够好. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- iPhone ARKit中的位置在一个地方重叠
- react进阶系列:高阶组件详解(三)
- 登录到oracle db 12.2 docker container中方法
- xml – Amazon Product Advertising API:如何获取ItemLook
- c# – 执行插入更新命令时从SQL Server搜索数据时出现TIMEO
- ruby-on-rails – 集成Simple-form 2.0.0和Zurb
- oracle – 有多个sessionFactory实例
- ajaxFileUpload插件,C#返回Json数据报错问题的解决方案
- ruby-on-rails – 使用net / http发送Post请求
- 如何在Cocos2D 1.0 中掩饰一个精灵(三)