Two Sum 是 LeetCode 上经典的算法题之一,常用于面试准备和基础算法训练。其核心目标是:给定一个整数数组和一个目标值,找出数组中两个数的和等于目标值,并返回它们的下标。
📌 解题思路
暴力法
遍历数组所有可能的两数组合,时间复杂度为 O(n²)。
⚠️ 不推荐,仅作基础理解哈希表优化
使用哈希表存储每个数及其索引,单次遍历即可解决,时间复杂度 O(n)。
✅ 推荐用于实际编码双指针法(排序后)
先对数组排序,再使用左右指针逐步逼近目标值,时间复杂度 O(n log n)。
🔧 适合对空间复杂度敏感的场景
📚 扩展学习
📝 示例代码(Python)
def two_sum(nums, target):
num_map = {}
for i, num in enumerate(nums):
complement = target - num
if complement in num_map:
return [num_map[complement], i]
num_map[num] = i
return []
注意:本题需确保返回的下标 i < j,可根据需求调整逻辑。