0
点赞
收藏
分享

微信扫一扫

python 练习题 俩数之和

星巢文化 2022-08-11 阅读 94

 

学习地址:

​​https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/x2jrse/​​

 

 

1 '''
2 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
3
4 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
5
6 你可以按任意顺序返回答案。
7
8
9
10 示例 1:
11
12 输入:nums = [2,7,11,15], target = 9
13 输出:[0,1]
14 解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
15 示例 2:
16
17 输入:nums = [3,2,4], target = 6
18 输出:[1,2]
19 示例 3:
20
21 输入:nums = [3,3], target = 6
22 输出:[0,1]
23
24
25
26 '''
27
28 #方法一
29
30 class Solution:
31 def twoSum(self, nums: List[int], target: int) -> List[int]:
32 l = len(nums)
33 res=[]
34 for i in range(l):
35 num = target -nums[i]
36 if num in nums[i+1:]:
37 res.append(i)
38 #避免重复,找到的索引下标是第一个
39 numIndex = nums.index(num) if nums[i] != num else nums[i+1:].index(num)+i+1
40 res.append(numIndex)
41 break
42 return res
43
44 #方法二,力扣上的写法
45 class Solution:
46 def twoSum(self, nums: List[int], target: int) -> List[int]:
47 dict_num = dict()
48 for i, v in enumerate(nums):
49 tmp = target - v
50 if dict_num.get(tmp) is not None:
51 return i, dict_num[tmp]
52 else:
53 dict_num[v] = i
54 return

 

 

 


著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。



举报

相关推荐

0 条评论