【问题标题】:How to know how many time each element appears in an array? [duplicate]如何知道每个元素在数组中出现的次数? [复制]
【发布时间】:2020-11-14 01:02:32
【问题描述】:
So far I have this: 

func myFunc(arr: [Int]) {
    var arr2 = arr
    var count = 1
    for i in 0..<arr.count {
        for j in i + 1..<arr2.count {
            if arr2[i] == arr2[j] {
                count += 1
                arr2.remove(at: j)
            }

        }
       print("\(arr2[i])-\(count)")
        count = 1
    }
}
myFunc(arr: [5,6,5])

我希望它打印 (5 - 2) (6 - 1) 每次我想删除重复的元素时都会遇到致命错误,你能解释一下为什么以及如何解决这个问题吗?

【问题讨论】:

  • 您需要订单吗?喜欢“5-2”,因为它是数组中的第一个?否则,您可能对 NSCountedSet 感兴趣,它正是为此而生的。

标签: arrays swift for-loop swift-playground


【解决方案1】:

我将通过创建哈希表或字典来解决这个问题,其中键的类型与数组元素相同,整数作为值。此结构将存储数组中的值。遍历数组你可以:

  1. 将元素添加到字典中是如果它不存在值作为“键”和 1 作为“值”。
  2. 如果元素已存在 - 将“值”增加一个元素“键| == 元素。 遍历整个数组后,您将拥有具有唯一元素作为字典键和重复次数作为值的字典

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-24
    • 2017-08-28
    • 2012-07-23
    • 2021-12-17
    相关资源
    最近更新 更多