LeetCode-TwoSum

来源:互联网 发布:企业网络信息安全制度 编辑:程序博客网 时间:2024/06/05 17:09

Q:

Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution, and you may not use the same element twice.Example:Given nums = [2, 7, 11, 15], target = 9,Because nums[0] + nums[1] = 2 + 7 = 9,return [0, 1].

S1:Time:O(n2) Space:O(1)

func twoSum(_ nums: [Int], _ target: Int) -> [Int] {    for var i in 0..<nums.count {        let first = nums[i];        if first > target {            return [];        }        let addMore = target - first;        for var j in i+1..<nums.count {            let second = nums[j];            if second > addMore {                break;            }            if second == addMore {                return [i,j];            }        }    }    return [];}

这里写图片描述

S2:Time:O(n) Space:O(n)

func twoSum(_ nums: [Int], _ target: Int) -> [Int] {    var dic = [Int:Int]();    for var i in 0..<nums.count {        let item = nums[i];        let addMore = target - item;        let dicItem = dic[addMore];        if  dicItem != nil {            return [dicItem!,i];        }        dic[item] = i;    }    return [];}

这里写图片描述

原创粉丝点击