Leetcode1. 两数之和

思路: 用一个临时数组存储未匹配的数,如果存在匹配,则数组中一定存在(target - num)的值。

Swift 通过代码:

class Solution {
    func twoSum(_ nums: [Int], _ target: Int) -> [Int] {
        var numsArray = [Int]()
        var end = 0
        var start = 0
        for (i, num) in nums.enumerated() {
            if numsArray.contains(target - num) {
                start = numsArray.firstIndex(of: target - num) ?? 0
                end = i
                return [start, end]
            } else {
                numsArray.append(num)
            }
        }
        
        return []
    }
    
}

暴力超时未通过代码


// 超时
// 超时
func twoSum(_ nums: [Int], _ target: Int) -> [Int] {
    var numsArray = [Int]()
    var end = 0
    var start = 0
    for (i, num) in nums.enumerated() {
        for (j, number) in numsArray.enumerated() {
            if (target - num) == number  {
                end = i
                start = j
                return [start, end]
            }
        }
        numsArray.append(num)
    }

    return []
}

你可能感兴趣的:(Leetcode1. 两数之和)