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:
Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].
解题方案
思路 1
**- 时间复杂度: O(N^2)**- 空间复杂度: O(1)**
暴力解法,两轮遍历
beats 27.6%
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]
return []
class Solution(object):
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
look_up = {}
for i, num in enumerate(nums):
if target-num in look_up:
return [look_up[target-num], i]
look_up[num] = i
return []
1. Two Sum
难度: Easy
刷题内容
解题方案
暴力解法,两轮遍历
beats 27.6%
上面的思路1太慢了,我们可以牺牲空间换取时间
target - 当前数字
, 则表面 当前值和 lookup中的值加和为 target.target - 当前数字
的 index 和 当前值的 index