软件工程师面试题及答案(全).docxVIP

  • 0
  • 0
  • 约7.73千字
  • 约 22页
  • 2026-05-10 发布于四川
  • 举报

软件工程师面试题及答案(全)

一、数据结构与算法

题目1:给定一个整数数组`nums`和一个目标值`target`,请你在该数组中找出和为目标值的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,且不能重复利用这个数组中同样的元素。

示例:

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

输出:[0,1]

解释:因为nums[0]+nums[1]=2+7=9

答案思路与代码:

核心思路是使用哈希表(字典)来优化查找过程,将时间复杂度从暴力法的O(n2)降低到O(n)。遍历数组,对于每个元素,计算其补数(targetnums[i])。检查该补数是否已存在于哈希表中。如果存在,则找到了答案;如果不存在,则将当前元素的值及其索引存入哈希表,以备后续查找。

```python

deftwoSum(nums,target):

初始化一个空字典,用于存储值到索引的映射

hash_map={}

fori,numinenumerate(nums):

complement=targetnum

检查补数是否已在哈希表中

ifcomplementinhash_map:

找到答案,返回补数的索引和当前索引

return[hash_map[complement],i]

未找到,将当前数字及其索引

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档