力扣高频面试题及详细答案.docxVIP

  • 1
  • 0
  • 约6.92千字
  • 约 8页
  • 2026-04-27 发布于河北
  • 举报

力扣高频面试题及详细答案

题目1:两数之和(简单,LeetCode1)

题目描述

给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

示例:输入:nums=[2,7,11,15],target=9→输出:[0,1]

解题思路

这道题是面试入门必考题,核心考察哈希表的应用(空间换时间)。

常规思路(暴力法):双重循环遍历数组,判断两个数之和是否等于target,时间复杂度O(n2),空间复杂度O(1),但面试时暴力法通常只能作为基础思路,面试官会追问更优解。

最优思路(哈希表):遍历数组时,用哈希表(字典)存储“数组元素值→元素下标”,对于当前元素nums[i],计算差值complement=target-nums[i],如果complement在哈希表中,说明找到答案,直接返回两个下标;如果不在,就把当前元素和下标存入哈希表,继续遍历。时间复杂度O(n),空间复杂度O(n),是面试中推荐的解法。

详细代码(Python)

python

deftwoSum(nums,target):

#初始化哈希表,存储元素值和对应的下标

hash_map={}

#遍历数组,i是下标

文档评论(0)

1亿VIP精品文档

相关文档