Google Software Engineer | Early Career | 谷歌OA面试真题

1,383閱讀
沒有評論
Google Software Engineer | Early Career | 谷歌OA面试真题

在众多程序员心中,Google 一直是梦想的终极站。它不仅拥有世界领先的工程体系与技术标准,更以极高的招聘门槛闻名。很多同学在准备 Google 软件工程师(Software Engineer)岗位时,常常感到迷茫:到底面试流程有哪些?题型有什么规律?需要重点准备什么?本篇博客将为你系统梳理 Google 的面试流程、题型分布,以及经典高频真题案例,带你站在巨人的肩膀上科学备战,冲击 Google dream offer!

Google的SDE工作要求和在线评估测试 (OA):

  • 职位要求: Google 初级软件工程师职位要求至少一年的相关经验。
  • OA 时间: 应聘者收到长达 30 分钟的在线评估测试 (OA),截止时间为 6 月 1 日凌晨 5:45(太平洋时间)
  • OA 内容: 全是性格测试。建议应聘者以真诚、积极的态度回答,避免浪费宝贵机会。

面试题:寻找 K 个最接近的元素

Given a sorted array arr = [1,2,3,10,11,12], find k=3 closest elements around target m = ?

题目描述: 给定一个排序数组 arr = [1, 2, 3, 10, 11, 12] 和一个目标值 m,找到距离 m 最近的 k=3 个元素。

Clarification: 面试官提出问题:如果数组是 [1, 2, 4, 5],目标值是 m = 3,需要选择 2 和 4,剩下一个元素应该选择 1 还是 5?

候选人: 任选一个即可。

Candidate 和 Interviewer 的确认:

  • 结果数组大小为 3
  • 无需额外排序。
  • 使用 二分搜索 和 双指针法 解决问题。

代码结构与解决方法:

算法思路:

  1. 二分搜索: 找到目标值附近的最接近元素。
    • 初始化 left 和 right 指针。
    • 利用 mid = left + (right - left) // 2 判断移动方向。
    • 记录最接近目标值的元素索引。
  2. 双指针法:
    • 从最近元素索引出发,向两侧扩展。
    • 比较 left 和 right 指针的值,选择更接近目标值的元素。
    • 更新指针并将元素加入结果集。
  3. 复杂度分析:
    • 二分搜索复杂度:O(log n)。
    • 双指针扩展复杂度:O(k)。
    • 总复杂度:O(log n + k)。
def find_closest_elements(arr, k, m):
    # 二分搜索找到最接近的元素
    left, right = 0, len(arr) - 1
    while left < right:
        mid = left + (right - left) // 2
        if arr[mid] < m:
            left = mid + 1
        else:
            right = mid
    
    # 双指针扩展
    closest = left
    left, right = closest - 1, closest
    result = []
    for _ in range(k):
        if left >= 0 and (right >= len(arr) or abs(arr[left] - m) <= abs(arr[right] - m)):
            result.append(arr[left])
            left -= 1
        else:
            result.append(arr[right])
            right += 1
    
    return sorted(result)

面试总结和建议:

  • 关键点:
    • 展示对二分搜索和双指针法的熟练掌握。
    • 代码结构清晰,注释清楚,帮助考官理解。
    • 确保边界情况处理正确(如指针越界)。
  • 面试后的交流:
    • 展示对岗位的兴趣,询问将来负责的项目内容。

Reference

Google OA | Leetcode

2024 Google OA

We provide services for writing online assessments (OA), proxy interviews, and interview assistance. For the OA writing service, we will ensure that you achieve a perfect score. Contact us now to make an appointment.

author avatar
azn7u2@gmail.com
正文完
 0
评论(沒有評論)