美文网首页
力扣1 - 两数之和

力扣1 - 两数之和

作者: gaookey | 来源:发表于2020-08-31 14:13 被阅读0次

    给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
    你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

    示例:
    给定 nums = [2, 7, 11, 15], target = 9
    因为 nums[0] + nums[1] = 2 + 7 = 9
    所以返回 [0, 1]

    func twoSum(_ nums: [Int], _ target: Int) -> [Int] {
        var map = [Int: Int]()
        for index in 0..<nums.count {
            let complement = target - nums[index]
            if map.keys.contains(complement) {
                if let comIndex = map[complement] {
                    return [comIndex, index]
                }
            }
            map[nums[index]] = index
        }
        return []
    }
    
    //[2, 4]
    twoSum([4, 6, 7, 1, 8], 15)
    
    func twoSum(_ nums: [Int], _ target: Int) -> [Int] {
        var map = [Int: Int]()
        for index in 0..<nums.count {
            map[nums[index]] = index
        }
        for index in 0..<nums.count {
            let complement = target - nums[index]
            if map.keys.contains(complement) && map[complement] != index {
                if let uc = map[complement] {
                    return [index, uc]
                }
            }
        }
        return []
    }
    
    func twoSum(_ nums: [Int], _ target: Int) -> [Int] {
        for i in 0..<nums.count - 1 {
            for j in (i + 1)..<nums.count {
                if ((nums[i] + nums[j]) == target) {
                    return [i, j]
                }
            }
        }
        return []
    }
    
    //[2, 4]
    twoSum([4, 6, 7, 1, 8], 15)
    

    相关文章

      网友评论

          本文标题:力扣1 - 两数之和

          本文链接:https://www.haomeiwen.com/subject/xsvusktx.html