Leetcode--Two Sum(1)

今天是第一次练习Leetcode题目,听别人说挺好的,就来试试。
*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.
Example:
Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].*

class Solution(object):
    def twoSum(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        for i in range(0, len(nums)):
            for j in range(i+1, len(nums)):
                if(target == nums[i] + nums[j]):
                    return [i, j]

这是我第一次提交时使用的代码,虽然结果是对的,但是……
这里写图片描述
此时我的内心是崩溃的,成绩竟然这么低,好伤心!后来在讨论区看到兄弟们在使用字典,我也试了试,时间开销果然下去了。

class Solution(object):
    def twoSum(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        dict1 = {}
        for i in range(len(nums)):
            if nums[i] in dict1:
                return [dict1[nums[i]], i]
            else:
                dict1[target - nums[i]] = i

这里写图片描述
这个结果还是不错的,此时,我对那个用时最少的算法更感兴趣了。但是,并没有找到。
后来,我又提交了一次,这里写图片描述
我用了同样的代码,结果时间开销却不一样,此时我觉得排在我前面的这些,也都是像我一样刷出来的。
今天就到这了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值