算法编程面试高频题及详细解析.docxVIP

  • 3
  • 0
  • 约2.54千字
  • 约 10页
  • 2026-06-25 发布于河北
  • 举报

算法编程面试高频题及详细解析

一、数组类:两数之和(Easy)

题目描述

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

示例:

输入:nums=[2,7,11,15],target=9

输出:[0,1]

思路分析

1. 暴力解法(不推荐):双重循环遍历数组,判断两数之和是否等于target,时间复杂度O(n²),面试中会被追问更优解。

2. 优化解法(哈希表):利用哈希表存储“数值-下标”映射,遍历数组时,计算当前值与target的差值,若差值在哈希表中,直接返回两个下标;否则将当前值存入哈希表。时间复杂度O(n),空间复杂度O(n),是面试最优解。

代码实现

deftwoSum(nums,target):

#初始化哈希表,存储已遍历的数值和下标

num_map={}

foridx,numinenumerate(nums):

#计算差值

complement=target-num

#若差值存在于哈希表,直接返回结果

ifcomplementinnum_map:

文档评论(0)

1亿VIP精品文档

相关文档