- 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)