leetcode1 twoSum

Posted yawenw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode1 twoSum相关的知识,希望对你有一定的参考价值。

 1 """
 2 Given an array of integers, return indices of the two numbers such that they add up to a specific target.
 3 
 4 You may assume that each input would have exactly one solution, and you may not use the same element twice.
 5 
 6 Example:
 7 
 8 Given nums = [2, 7, 11, 15], target = 9,
 9 
10 Because nums[0] + nums[1] = 2 + 7 = 9,
11 return [0, 1].
12 
13 
14 """
15 
16 
17 """
18 第一种是思路简单的方法,先遍历求出目标值,再遍历目标值是否再数组中,
19 判断如果下标相等则继续,最后返回[i,j]
20 """
21 class Solution1(object):
22     def twoSum(self, nums, target):
23         n = len(nums)
24         for i in range(n):
25             a = target - nums[i]
26             if (a in nums):       #这里其实隐含了一层循环
27                 j = nums.index(a)
28                 if (i==j):
29                     continue
30                 else:
31                     return [i,j]
32                     break
33             else:
34                 continue
35 """
36 第二种方法用了dict查找,提高效率
37 enumerate函数用法:
38 seasons = [‘Spring‘, ‘Summer‘, ‘Fall‘]
39 list(enumerate(seasons))
40 [(0, ‘Spring‘), (1, ‘Summer‘), (2, ‘Fall‘)]
41 """
42 class Solution2(object):
43     def twoSum(self, nums, target):
44         dict = {}
45         for i, num in enumerate(nums):
46             if target - num in dict:
47                 return [dict[target - num], i]
48             else:
49                 dict[num] = i
50 nums = [2, 7, 11, 15]
51 target = 9
52 result1 = Solution1()
53 result2 = Solution2()
54 print(result1.twoSum(nums, target))
55 print(result1.twoSum(nums, target))

 

以上是关于leetcode1 twoSum的主要内容,如果未能解决你的问题,请参考以下文章

leetcode1

leetcode1. 两数之和

leetcode1

1. 两数之和 [leetcode 1: Two Sum]

1. 两数之和 [leetcode 1: Two Sum]

LeetCode1. 两数之和(C++)