我是靠谱客的博主 正直煎饼,这篇文章主要介绍LeetCode算法(Python)--1、Two Sum,现在分享给大家,希望可以做个参考。

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
3
Given 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
11
class 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
13
class 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内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(73)

评论列表共有 0 条评论

立即
投稿
返回
顶部