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, and you may not use the same element twice.
Example:
复制代码
1
2
3Given nums = [2, 7, 11, 15], target = 9, Because nums[0] + nums[1] = 2 + 7 = 9, return [0, 1].
这种蛮力方法是:
复制代码
1
2
3
4
5
6
7
8
9
10
11class Solution(object): def twoSum(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[int] """ for i in range(len(nums)): for j in range(i+1, len(nums)): if(nums[i] + nums[j] == target): return [i, j]
另外一种比较好的做法是:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13class Solution(object): def twoSum(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[int] """ arr = {};//使用字典存储遍历过的num和对应下标{num:index} length = len(nums);//计算输入的列表长度 for i in range(length): if (target - nums[i]) in arr://如果target-当前num的差在arr中,则表示已经找到答案,返回结果即可 return [arr[target - nums[i]], i]; arr[nums[i]] = i;//否则,将该num及其下标存入arr中
最后
以上就是正直煎饼最近收集整理的关于LeetCode算法(Python)--1、Two Sum的全部内容,更多相关LeetCode算法(Python)--1、Two内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复