Two Sum 是 LeetCode 上经典的算法题之一,常用于面试准备和基础算法训练。其核心目标是:给定一个整数数组和一个目标值,找出数组中两个数的和等于目标值,并返回它们的下标。

📌 解题思路

  1. 暴力法
    遍历数组所有可能的两数组合,时间复杂度为 O(n²)
    ⚠️ 不推荐,仅作基础理解

    Two_Sum
  2. 哈希表优化
    使用哈希表存储每个数及其索引,单次遍历即可解决,时间复杂度 O(n)
    ✅ 推荐用于实际编码

    Hash_Table
  3. 双指针法(排序后)
    先对数组排序,再使用左右指针逐步逼近目标值,时间复杂度 O(n log n)
    🔧 适合对空间复杂度敏感的场景

    Algorithm_Example

📚 扩展学习

📝 示例代码(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,可根据需求调整逻辑。