Python 面试算法题目查找和是目标值的下标

Python 面试算法题目查找和是目标值的下标

题目描述

python 实现 给出一个列表 ;例如 nums=[1,2,3,4,7] target=9, 返回列表中和为9的下标,那么就是[1,4]

代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
def two_sum(nums, target):
"""
查找列表中两个数,使其和为 target,并返回它们的索引。

参数:
nums (List[int]): 输入的整数列表。
target (int): 目标和。

返回:
List[int]: 两个数的索引(如果存在),否则返回空列表。
"""
index_map = {} # 存储数字和其对应索引的字典
for i, num in enumerate(nums):
complement = target - num # 目标值减当前值,得到“补数”
if complement in index_map:
return [index_map[complement], i] # 返回之前记录的补数索引和当前索引
index_map[num] = i # 记录当前数字的索引
return [] # 如果没有匹配,返回空列表

# 示例
nums = [1,2,3,4,7]
target = 9
result = two_sum(nums, target)
print("结果索引:", result)

代码解释:

使用一个 哈希表 来高效地解决这个问题,时间复杂度为 O(n), 首先声明一个空的字典,然后通过enumerate函数可以遍历得到值和顺序id,那么我们用目标值减去遍历出的值,如果这个值在我们声明的字典中,那么我们就返回当前这个字典的位置,以及当前的索引,如果没有则按照顺序存储对应的值i,没有匹配成功则返回[]


Python 面试算法题目查找和是目标值的下标
https://dreamshao.github.io/2025/07/24/python面试题目2/
作者
Yun Shao
发布于
2025年7月24日
许可协议