第一天 Two Sum

作者: 业余马拉松选手 | 来源:发表于2018-08-20 23:40 被阅读7次

这道题估计是刷过最多的几道题了吧,第一天,第一题,难度Easy
希望可以坚持
为了增强趣味性,这次换了一种不太熟悉的Python

https://leetcode-cn.com/problems/two-sum/description/

解题思路:
将值和索引值保存起来,在Python里叫字典,Java里叫Map,都是同一回事情。然后在循环的时候,判断目标值减去当前值是否已经在保存的字典里,如果在,那么就可以直接返回。
毕竟是简单难度的题目,特别提到了有且只有一组解,就不用考虑那么多了,直接一次循环就好,时间复杂度O(n)

通过代码:

class Solution:
    def twoSum(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        keys = {}
        for index,item in enumerate(nums):
            if target-item in keys:
                return [keys[target-item],index]
            else:
                keys[item] = index

今日收获:
1、从对Python的掌握上,遍历一个列表,可以用enumerate这个函数,可以同时获取索引和值
2、判断一个值是否在字典中,也是可以直接使用in的,这点刚开始学Python还没有转过来,习惯用get方法,判断是否为None了,写起来就显得有点笨拙

明日计划:
解决了两数之和,明天搞一把三数之和吧

今日结语:
不积跬步,无以至千里。
不要急,一天一天的坚持下来。

相关文章

网友评论

    本文标题:第一天 Two Sum

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