arrays - 返回数组中重复的元素

标签 arrays swift

我试图在新数组中获取给定数组的重复元素,但我不知道我在哪里被困以及为什么它不起作用。

var arraye: [Int] = []

func fn(list: [Int]) -> [Int] {
    for var a = 0; a < list.count; a++ {
        for var b = 1; b < list.count; b++ {
            if list[a] == list[b] {
                if contains(arraye, list[a]) == false {
                        arraye.append(list[b])
                }
            }
        }
    }
    return arraye
}

println(fn([1,2,4,3]))

最佳答案

你的算法有一个错误:

您必须在“原始”元素之后开始搜索重复项。因此,您必须将 b 初始化为 a + 1

func fn(list: [Int]) -> [Int] {
    for var a = 0; a < list.count; a++ {
        for var b = a + 1; b < list.count; b++ {
            if list[a] == list[b] && !contains(arraye, list[a]) {
                arraye.append(list[b])
            }
        }
    }
    return arraye
}

println(fn([1, 2, 4, 3, 4, 1, 4]))

打印

[1, 4]

顺便说一句:

if list[a] == list[b] {if contains(arraye, list[a]) == false 可以统一,并且 contains(arraye, list[a]) == false 更常见的写法是 !contains(arraye, list[a])

关于arrays - 返回数组中重复的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32305368/

相关文章:

java - ZLib 解压缩在大字节数组上失败

Python 二维数组 i C 使用 ctypes

php - 创建一个简单的数组

objective-c - 如何获取 mac OSX Swift 上所有支持的屏幕分辨率

ios - 使用 UICollectionViewDiffableDataSource 时如何重新加载 UICollectionView 部分中的数据?

c - 在函数外部使用 3d 数组

c++ - 使用类对象和派生对象 C++ 创建数组

ios - 快速滑动 View

swift - 如何获取 UITableView 中的所有 UITextField 值?

ios - 如何在 ios 的数字键盘键盘中为所有文本字段添加下一个按钮并导航到下一个