2 条题解

  • 0
    @ 2025-10-8 16:50:09

    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 []
    
    • 0
      @ 2025-10-8 16:49:55

      建议参考资料:维基百科

      • 1

      【数论基础(难度:5)】欧拉函数应用:原根

      信息

      ID
      380
      时间
      4000ms
      内存
      256MiB
      难度
      5
      标签
      递交数
      23
      已通过
      13
      上传者