您的位置:首页 > 编程语言 > Python开发

LeetCode刷题笔记之1:两数之和Python

2019-04-26 19:15 417 查看

原题目

给定一个整数数组

nums
 和一个目标值
target
,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

示例:

[code]给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

Solution:

暴力破解:(时间复杂度为O(N^2))

[code]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(len(nums)):
if i!=j:
if nums[i] + nums[j] == target:
return(i,j)

solution2:用字典dict模拟HashMap,时间复杂度为O(N)

[code]class Solution:
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
dict = {}
for i,m in enumerate(nums):
if target - m is not None:
return [i,dict.get(target - m)]
dict.get(m) = i

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: