LeetCode题解1:Two Sum
程序员文章站
2022-07-14 17:57:57
...
Two Sum问题:给定一个数组nums和一个正整数target,试从数组中找出2个元素,它们相加之和恰好为target。
难度:容易
思路:用Hash表建立反向索引(很多查找类问题都可以用索引来优化性能)
陷阱:index1 != index2
代码:
class Solution:
# @param {integer[]} nums
# @param {integer} target
# @return {integer[]}
def twoSum(self, nums, target):
nums_dict = {}
for idx, num in enumerate(nums):
nums_dict[num] = idx
for index1, num in enumerate(nums):
index2 = nums_dict.get(target - num)
if index2 is not None and index2 != index1:
return [index1 + 1, index2 + 1]
return [0, 0]
时间复杂度:O(n)
空间复杂度:O(n)
上一篇: Android高级控件之Listview
下一篇: 二叉树的层平均值
推荐阅读
-
LeetCode 15: 3Sum题解(python)
-
【LeetCode】Two Sum & Two Sum II - Input array is sorted & Two Sum IV - Input is a BST
-
LeetCode - 1. Two Sum(8ms)
-
LeetCode_#1_两数之和 Two Sum_C++题解
-
LeetCode(62)-Two Sum
-
LeetCode:Two Sum浅析
-
[LeetCode] 1. Two Sum 两数之和
-
【leetcode】#1 Two Sum【Hash】【Easy】
-
LeetCode 1 Two Sum (hash)
-
[leetcode]1. Two Sum