- 3
- 0
- 约9.71千字
- 约 10页
- 2026-05-18 发布于河北
- 举报
Google笔试题及详细答案
一、算法编程题(Google笔试核心,侧重基础算法+边界处理)
题1:两数之和(Easy,高频入门)
题目描述:给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回它们的数组下标。假设每种输入只会对应一个答案,且数组中同一个元素不能使用两遍。
示例:输入:nums=[2,7,11,15],target=9→输出:[0,1]
要求:时间复杂度尽量低于O(n2),空间复杂度无硬性限制。
详细答案
思路分析:暴力解法是双重循环遍历,时间复杂度O(n2),不符合优化要求;最优解法用哈希表(HashMap),遍历数组时,将“目标值-当前元素”作为key,当前下标作为value存入哈希表,同时判断当前元素是否在哈希表中,若存在,说明找到配对元素,直接返回两个下标。这样遍历一次数组即可完成,时间复杂度O(n),空间复杂度O(n)。
代码实现(Java,Google笔试常用语言,无冗余代码):
java
importjava.util.HashMap;
importjava.util.Map;
publicclassTwoSum{
publicint[]twoSum(int[]nums,inttarget){
MapInteger,Integermap=
原创力文档

文档评论(0)