- 1
- 0
- 约1.4万字
- 约 15页
- 2026-05-26 发布于河北
- 举报
常见算法面试题及详细答案
一、基础必考题(入门级,几乎所有面试都会考)
1.两数之和(LeetCode1)
题目:给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回它们的数组下标。注意:每种输入只会对应一个答案,数组中同一个元素不能使用两遍。
示例:nums=[2,7,11,15],target=9→输出[0,1]
思路拆解:
最直观的想法是暴力遍历,两层循环逐个判断两个数的和是否等于target,但时间复杂度是O(n2),面试时会被追问“如何优化”。优化的核心是“用空间换时间”,借助哈希表(HashMap)存储已经遍历过的数字和它的下标,遍历当前数字时,判断target-当前数字是否在哈希表中,若存在,直接返回两个下标;若不存在,将当前数字和下标存入哈希表,继续遍历。这样时间复杂度能降到O(n),空间复杂度O(n),是面试最优解。
代码实现(Java):
java
importjava.util.HashMap;
importjava.util.Map;
publicclassTwoSum{
publicint[]twoSum(int[]nums,inttarget){
//哈希表:key存数字,value存数字对应的下标
Maplt;
原创力文档

文档评论(0)