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

  • 0
  • 0
  • 约1.01万字
  • 约 11页
  • 2026-04-27 发布于河北
  • 举报

LC面试高频题及详细答案

题目1:两数之和(Easy,必考题)

题干

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

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

详细答案

思路分析(面试必说)

最直观的是暴力枚举(两层for循环),但时间复杂度O(n2),面试时会被追问优化方案。最优思路是用哈希表(HashMap),利用“目标值-当前元素=另一个需要找的元素”,遍历数组时,先查哈希表中是否存在该“另一个元素”,存在则直接返回下标;不存在则将当前元素和其下标存入哈希表,这样只需遍历一次数组,时间复杂度O(n),空间复杂度O(n)。

注意:面试时要说明“为什么用哈希表”——解决暴力法的重复查询问题,把查询时间从O(n)降到O(1)。

代码实现(Java,面试常用语言)

java

publicint[]twoSum(int[]nums,inttarget){

//哈希表:key存数组元素,value存元素下标

HashMaplt;Integer,Integergt;map=newHashMap();

for(inti=0;inums.

文档评论(0)

1亿VIP精品文档

相关文档