diff --git a/kaakxixi/sum_two_nums.md b/kaakxixi/readme.md similarity index 82% rename from kaakxixi/sum_two_nums.md rename to kaakxixi/readme.md index bc5eae3..1331f50 100644 --- a/kaakxixi/sum_two_nums.md +++ b/kaakxixi/readme.md @@ -1,3 +1,7 @@ +LeetCode 1 两数之和 +2018-12-05 +代码提交地址 https://leetcode-cn.com/problems/two-sum/submissions/ + 算法分析: 方法1. 整体时间复杂度为O(n^2). 由于python中的list对象实际上是链表,其查询效率为 O(n), 即这里的if 语句if num in nums复杂度为O(n), diff --git a/kaakxixi/sum_two_nums.py b/kaakxixi/sum_two_nums.py index 5aba98f..535d80a 100644 --- a/kaakxixi/sum_two_nums.py +++ b/kaakxixi/sum_two_nums.py @@ -10,6 +10,7 @@ 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] """ +"""方法1是使用list查询差值""" class Solution(object): def twoSum(self, nums, target): """ @@ -23,6 +24,7 @@ def twoSum(self, nums, target): return [i,nums.index(num)] +"""方法2是使用dict查询差值""" def twoSum2(self, nums, target): """ :type nums: List[int] @@ -30,13 +32,13 @@ def twoSum2(self, nums, target): :rtype: List[int] """ #创建一个空字典 - d = {} + dic = {} for i in range(len(nums)): num = target - nums[i] #字典d中存在nums[i]时 - if nums[i] in d: - return d[nums[i]],i + if nums[i] in dic: + return dic[nums[i]],i #否则往字典增加键/值对 else: - d[num] = i + dic[num] = i #边往字典增加键/值对,边与nums[i]进行对比 \ No newline at end of file