谷歌面试问题
根据 Google 的官方职业页面,有两种类型的面试,电话/环聊面试和现场面试。以下是他们官方页面的摘录。
For software engineering candidates, we want to understand your coding skills and technical areas of expertise, including tools or programming languages and general knowledge on topics like data structures and algorithms. There’s generally some back and forth in these discussions, just like there is on the job, because we like to push each other’s thinking and learn about different approaches. So be prepared to talk through your solutions in depth. Push your own boundaries and find the best answer—that’s probably how you work anyway.
重要资源:
- 最近的 Google 面试经历
- 所有 Google 练习题
- 如何为 Google KickStart 做准备
练习题:
- 找到所有零和的三元组
- 从给定模式生成所有二进制字符串
- 在给定约束下可以使用 a、b 和 c 形成的字符串的计数
- 通过删除给定字符串的某些字符来查找字典中的最大单词
- 找到给定总和的子数组 |第 1 组(非负数)
- 查找给定字符串中具有 k 个唯一字符的最长子字符串
- 在重复元素的数组中找到两个不重复的元素
- 洪水填充算法 - 如何在油漆中实现填充()?
- 元字符串(检查两个字符串在一个字符串中交换后是否可以变得相同)
- 打印所有小于或等于给定值的跳跃数
- 从根到叶路径形成的所有数字的总和
- 名人问题
- 无限背包(允许重复物品)
中等水平
- 回溯 |第 7 组(数独)
- 困惑 |第 2 组(使用特里)
- 检查二叉树是否包含大小为 2 或更大的重复子树
- 动态规划 | Set 33(查找一个字符串是否与另外两个 stri 交错
- 连接同级节点
- 计算位于给定范围内的 BST 节点
- 动态规划 |第 11 套(鸡蛋掉落拼图)
- 动态规划 | Set 28(形成回文的最少插入)
- 动态规划 |第 31 组(游戏的最佳策略)
- 动态规划 |第 32 组(断字问题)
- 找出总和为给定值的四个元素 |设置 2 ( O(n^2Logn) 解)
- 给定一个由 'O' 和 'X' 组成的矩阵,如果被 'X' 包围,则将 'O' 替换为 'X'
- 如何使用给定的四个键打印最大数量的 A
- 原地旋转方阵 90 度 |设置 1
- 两个连续子数组之和之间的最大绝对差
- 合并两个额外空间有限的 BST
- 合并重叠区间
- 模幂(模运算中的幂)
- 剪成最小正方形的纸 |设置 2
- 所有对之间的位差之和
硬级别
- 分配最小页数
- 给定一个数组 arr[],找到最大值 j - i 使得 arr[j] > arr[i]
- 给定一个外来语言的排序字典,找到字符的顺序
- 分配问题的匈牙利算法|第 1 套(介绍)
- 实现 LRU 缓存
- 最长有效子串的长度
- 整数流中的中位数(运行整数)
- 所有对之间的位差之和
- 旅行商问题 |第 1 组(朴素和动态规划)
- 使用回溯的分词问题