import Foundation
func twoSum(_ nums: [Int], _ target: Int) -> [Int] {
let maxLength = nums.count - 1
for i in 0...maxLength {
let k = i + 1
for j in k..<nums.count {
if (nums[i] + nums[j] == target) {
return [i, j]
}
}
}
return [0]
}
func twoSum2(_ nums: [Int], _ target: Int) -> [Int] {
var dict = [Int: Int]()
for (i, num) in nums.enumerated() {
print("i=\(i) num=\(num)")
if let lastIndex = dict[target - num] {
return [lastIndex, i]
}
dict[num] = i
}
fatalError("No valid outputs")
}
let nums = [2, 7, 1, 0, 11, 15];
let target = 7;
print(twoSum2(nums, target))