我想在不使用高階函數的情況下比較Swift中兩個不同數組中的元素。該函數應返回兩個數組中的整數數組。我認爲我很接近,但是我得到'索引超出範圍錯誤。也想知道如何在時間複雜度這一措施兩個獨立數組的快速比較元素
let arrayOne = [1, 5, 12, 3, -15 , 52, 20]
let arrayTwo = [3, 1, 6, 5, 57, 13, 17, 20]
func compareElementsInArray(array1:[Int], array2: [Int]) -> [Int] {
let totalArray = array1 + array2
var sortedArray = totalArray.sorted()
var results = [Int]()
for i in totalArray {
if sortedArray[i + 1] == sortedArray[i] {
results.append(sortedArray[i])
}
}
return results
}
compareElementsInArray(array1: arrayOne, array2: arrayTwo)
爲什麼這個問題得到了downvoted ?? – a2b123
'爲我在totalArray {如sortedArray [i + 1] == sortedArray [i] ...''sortedArray.count == totalArray.count',對不對?所以如果「我」是最後一個索引,你不能做'totalArray [i + 1]',也不''sortedArray [i + 1]',這就是爲什麼你會得到一個索引越界問題。此外,你的邏輯暗示'arrayOne'或arrayTwo'內沒有重複的值。 – Larme