【发布时间】:2017-11-24 19:53:51
【问题描述】:
如果我有一个像这样的二维数组:[[1,2,3],[3,2,1],[4,9,3]],我希望能够找出那里是这个数组里面的两个相同的数组,分别是[1,2,3]和[3,2,1]。我怎样才能做到这一点?
感谢您的所有回答,我专注于 leetCode threeSum 问题,所以我没有发表任何评论。但是由于我是编程菜鸟,所以我的答案超出了时间限制。所以我实际上想找到重复的数组并删除所有重复项,并在多维数组中只留下一个唯一的数组。我根据@Oleg 的回答添加了一些额外的代码,并认为我会将我的函数放在这里:
func removeDuplicates(_ nums: inout [[Int]] ) -> [[Int]]{
let sorted = nums.map{$0.sorted()}
var indexs = [Int]()
for (pos,item) in sorted.enumerated() {
for i in pos+1..<sorted.count {
if item == sorted[i] {
if nums.indices.contains(i){
indexs.append(i)
}
}
}
}
indexs = Array(Set<Int>(indexs))
indexs = indexs.sorted(by: {$0 > $1})
for index in indexs{
nums.remove(at: index)
}
return nums
}
【问题讨论】:
-
我相信你尝试过一些东西。 不要害羞——展示你的尝试! (所以它看起来不像是“给我代码”的问题。)
标签: arrays swift algorithm multidimensional-array