1.[easy] Two Sum

来源:互联网 发布:wifi搞怪软件下载 编辑:程序博客网 时间:2024/05/28 22:13

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.

开个新的笔记,除了每天恶补数学知识外,编程能力自然也是不能落下,那就做leetcode的练习题吧

由于自己编程基础能力比较弱,就从easy , medium, hard这样的顺序开始做起

第一题看着简单,但是解法却是很巧妙

我的解法, low,直接提示Time Limit Exceeded

def two_sum(nums, target):    """    :type nums: List[int]    :type target: int    :rtype: List[int]    """    nums_len = len(nums)    if nums_len < 2:        return False    i = 0    while i < nums_len - 1:        j = i + 1        while j < nums_len:            if nums[i] + nums[j] == target:                return i, j            j += 1        i += 1    if i == nums_len - 1:        return False


巧妙的解法:

def two_sum(nums, target):    """       :type nums: List[int]       :type target: int       :rtype: List[int]    """    if len(nums) < 2:        return False    temp_dict = {}    for i in range(len(nums)):        if nums[i] in temp_dict:            return temp_dict[nums[i]], i        else:            temp_dict[target - nums[i]] = i


不多不说, 真的是非常的artful






原创粉丝点击