经典算法面试题及详细答案.docxVIP

  • 9
  • 0
  • 约8.66千字
  • 约 11页
  • 2026-04-20 发布于河北
  • 举报

经典算法面试题及详细答案

一、数组类(面试必考,基础且易拓展)

题目1:两数之和(LeetCode1,简单,高频入门)

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

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

思路解析(面试口述重点)

最直观的是暴力枚举(两层for循环),但时间复杂度O(n2),面试官会追问“如何优化”。优化核心是“用空间换时间”:用哈希表(字典)存储已经遍历过的元素和它的下标,遍历当前元素时,计算target-当前元素的值,判断这个差值是否在哈希表中,若存在,直接返回两个下标;若不存在,将当前元素存入哈希表,继续遍历。

易错点:不要先把所有元素存入哈希表,否则会出现“同一个元素被重复使用”的问题(比如nums=[3,3],target=6,先存3:0,再遍历第二个3时,差值3在哈希表中,直接返回[0,1],正确)。

代码实现(Python,面试手写版)

python

deftwoSum(nums,target):

#初始化哈希表,key是元素值,value是下标

hash_map={}

#遍历数组,同时记录下标

fori,

文档评论(0)

1亿VIP精品文档

相关文档