1 至N-1 个数,查找重复数据 - swift

数组a[N],存放了1 至N-1 个数,其中某个数重复一次。写一个函数,找出被重复的数字.时间复杂度必须为O(N)

参考链接:http://blog.csdn.net/zhuimengzh/article/details/6720388

func findRepeatNumber(arr: inout [Int]) -> Int {
    var temp: Int = 0
    while arr[0] != arr[arr[0]] {
        temp = arr[0]
        arr[0] = arr[temp]
        arr[temp] = temp
    }
    return arr[0]
}
//测试方法
var arr = [Int]()
let count = 999
while arr.count != count {
    let temp: Int = Int(arc4random_uniform(UInt32(count))) + 1
    if !arr.contains(temp) {
        arr.append(temp)
    }
}
//print(arr)
arr.insert(84, at: 14)
//print(arr)
print(findRepeatNumber(arr: &arr))

你可能感兴趣的:(1 至N-1 个数,查找重复数据 - swift)