如何知道每个元素在数组中出现了多少次?
How to know how many time each element appears in an array?
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)
每次我想删除重复的元素时都会出现致命错误,您能解释一下为什么以及如何解决这个问题吗?
我将通过创建哈希 [=18=] 或字典来解决这个问题,其中的键类型与数组元素相同,整数作为值。此结构将存储数组中的值。遍历数组你可以:
- 如果元素不存在且值为“键”且 1 为“值”,则向字典添加元素。
- 如果元素已经存在 - 将“值”增加元素“键| == 元素之一。
遍历整个数组后,您将得到一个字典,其中唯一元素作为字典键,重复次数作为值
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) 每次我想删除重复的元素时都会出现致命错误,您能解释一下为什么以及如何解决这个问题吗?
我将通过创建哈希 [=18=] 或字典来解决这个问题,其中的键类型与数组元素相同,整数作为值。此结构将存储数组中的值。遍历数组你可以:
- 如果元素不存在且值为“键”且 1 为“值”,则向字典添加元素。
- 如果元素已经存在 - 将“值”增加元素“键| == 元素之一。 遍历整个数组后,您将得到一个字典,其中唯一元素作为字典键,重复次数作为值