当前位置:  开发笔记 > IOS > 正文

通过Swift中的count,从多维数组中找到最大的数组

如何解决《通过Swift中的count,从多维数组中找到最大的数组》经验,为你挑选了1个好方法。

我有一个多维数组.它本身可以有多个数组.有时可能是5或6.现在我想通过使用数组大小​​从我的多维数组中获取最大的数组.我不知道如何实现这一目标.因此我在这里张贴.提前致谢.

例如:

[["a","b","c"],["d","e","f","g","h","i","j"]]



1> Martin R..:

如果您正在寻找给定数组中最长的子数组,那么您可以使用max(by:)数组计数进行比较:

let a = [["a", "b", "c"], ["d", "e", "f", "g", "h", "i", "j"], ["k"]]

let longestSubArray = a.max(by: { $0.count < $1.count })!

print(longestSubArray)
// ["d", "e", "f", "g", "h", "i", "j"]

在这里,我假设a不是空的,否则max(by:) 将返回nil.如果发生这种情况,请使用可选绑定:

if let longestSubArray = a.max(by: { $0.count < $1.count }) {
    print(longestSubArray)
} else {
    print("a is empty")
}

备注: Array是一个RandomAccessCollection因此得到它count是一个O(1)操作.

如果在包含数组中同时需要最长元素及其索引,则可以将以上内容应用于a.enumerated():

if let (idx, longest) = a.enumerated().max(by: { $0.element.count < $1.element.count }) {
    print("longest subarray", longest)
    print("at index", idx)
}

如果存在多个具有最大长度的子阵列,则上述解决方案将返回其中一个.@dfri的答案显示了如何获得 具有最大长度的所有子数组.

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有