2 条题解
-
0
LeetCode 1. 两数之和
给定一个整数数组
nums和一个整数目标值target,请你在该数组中找出 和为目标值target的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,且数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。
示例
输入:
nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为nums[0] + nums[1] == 9,返回[0,1]。题解思路
使用哈希表(字典)存储已遍历的数字及其索引,遍历数组时计算当前数字与目标值的差值(补数),若补数在哈希表中存在,则直接返回补数的索引和当前索引;否则将当前数字和索引存入哈希表。
时间复杂度:O(n)(遍历一次数组)
空间复杂度:O(n)(哈希表最多存储 n 个元素)def twoSum(nums, target): num_dict = {} for index, num in enumerate(nums): complement = target - num if complement in num_dict: return [num_dict[complement], index] num_dict[num] = index return []
- 1
信息
- ID
- 380
- 时间
- 4000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- 递交数
- 23
- 已通过
- 13
- 上传者