如何返回C#中包含最大元素的数组?

如何返回C#中包含最大元素的数组?,第1张

概述我有多个int数组: 1) [1 , 202,4 ,55]2) [40, 7]3) [2 , 48 ,5]4) [40, 8 ,90] 我需要获得所有位置中数字最大的数组.在我的情况下,这将是阵列#4.说明: >数组#2,#4在第一个位置具有最大数字,因此在第一次迭代后将返回这两个数组([40,7]和[40,8,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])
>现在在比较来自前一次迭代的返回数组的第二位置之后,我们将获得数组#4,因为8> 7
>依此类推……

你能建议一个有效的算法吗?与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}

根据具体情况,这可能足够好.

总结

以上是内存溢出为你收集整理的如何返回C#中包含最大元素的数组?全部内容,希望文章能够帮你解决如何返回C#中包含最大元素的数组?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1252493.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存