菜单

按公司分类的问题

相关源文件

本页面概述了“面试题”存储库中按公司分类的面试问题。这种组织方式允许用户通过关注特定公司常问的问题来有针对性地准备面试。有关按数据结构或算法类型组织的问题,请参阅常见面试问题

目的与组织

该存储库根据公司在技术面试中常问的问题对面试题进行了分类。这使得求职者可以通过专注于与特定公司最相关的问题来高效地准备面试。

来源: README.md1-523 .DS_Store1-11

涵盖的公司

该存储库包含针对各种知名技术公司的面试问题解决方案。问题的数量因公司而异,对以严格技术面试著称的公司有更广泛的覆盖。

公司问题类型示例
亚马逊数据结构、算法LinkedListCycle
谷歌算法优化、数据结构设计各种编码挑战
脸书数组操作、图问题各种编码挑战
微软树遍历、动态规划AddDigits, LinkedListCycle
领英动态规划、系统设计HouseRobber
爱彼迎哈希表、优化ContainsDuplicatesII, HouseRobber
彭博链表、数据处理LinkedListCycle
Adobe数学问题、位操作AddDigits
帕兰提尔数组操作、哈希表ContainsDuplicatesII
雅虎链表、树遍历LinkedListCycle

来源: company/airbnb/HouseRobber.java1-26 company/linkedin/HouseRobber.java1-26 company/airbnb/ContainsDuplicatesII.java1-20 company/adobe/AddDigits.java1-24 company/microsoft/AddDigits.java1-24 company/microsoft/LinkedListCycle.java1-32 company/yahoo/LinkedListCycle.java1-32 company/amazon/LinkedListCycle.java1-32 company/bloomberg/LinkedListCycle.java1-32 company/palantir/ContainsDuplicatesII.java1-20

问题解决方案结构

每个公司目录下都包含该公司常问问题的Java解决方案文件。这些解决方案包括:

  1. 注释中的问题描述
  2. 高效的代码实现解决方案
  3. 时间和空间复杂度考量

来源: company/airbnb/HouseRobber.java1-26 company/linkedin/HouseRobber.java1-26 leetcode/dynamic-programming/HouseRobber.java1-27

跨公司的常见问题

许多问题出现在多个公司目录中,表明它们在不同的技术面试中很受欢迎。例如:

HouseRobber

这个动态规划问题同时出现在Airbnb和LinkedIn的目录中,表明它在各公司中的相关性

You are a professional robber planning to rob houses along a street. Each house has a certain amount 
of money stashed, the only constraint stopping you from robbing each of them is that adjacent houses 
have security system connected and it will automatically contact the police if two adjacent houses 
were broken into on the same night.

该解决方案使用动态规划来找到可以抢劫的最大金额。

来源: company/airbnb/HouseRobber.java1-26 company/linkedin/HouseRobber.java1-26 leetcode/dynamic-programming/HouseRobber.java1-27

LinkedListCycle

这个测试链表环路检测的问题出现在包括微软、雅虎、亚马逊和彭博在内的多个公司目录中

Given a linked list, determine if it has a cycle in it.
Follow up: Can you solve it without using extra space?

该解决方案使用“龟兔赛跑”算法(Floyd判圈算法),其中两个指针以不同速度移动。

来源: company/microsoft/LinkedListCycle.java1-32 company/yahoo/LinkedListCycle.java1-32 company/amazon/LinkedListCycle.java1-32 company/bloomberg/LinkedListCycle.java1-32

ContainsDuplicatesII

这个哈希表问题出现在Airbnb和Palantir的目录中

Given an array of integers and an integer k, find out whether there are two distinct indices i and j 
in the array such that nums[i] = nums[j] and the absolute difference between i and j is at most k.

该解决方案使用哈希表来跟踪元素及其索引。

来源: company/airbnb/ContainsDuplicatesII.java1-20 company/palantir/ContainsDuplicatesII.java1-20 leetcode/array/ContainsDuplicatesII.java1-19

如何使用公司特定问题

要有效利用公司特定问题进行面试准备:

  1. 有针对性地准备:专注于与您面试公司相对应的目录
  2. 理解模式:寻找公司常问问题类型的模式
  3. 交叉参考:许多问题同时出现在公司目录和基于主题的目录中
  4. 实现解决方案:练习在不查看提供代码的情况下实现解决方案
  5. 回顾多种方法:某些问题可能有多种解决方案,各有不同的优缺点

来源: README.md12-27 README.md374-522

与基于主题的组织方式比较

该存储库提供了两种互补的方式来查找面试问题:

基于公司的组织方式基于主题的组织方式
侧重于您正在面试的公司侧重于您正在学习的概念
通过公司目录查找问题通过数据结构或算法查找问题
适用于有针对性的面试准备适用于全面理解
显示公司问题的模式显示概念应用

有关基于主题的问题组织,请参阅数据结构参考算法参考页面。

来源: README.md12-27 README-zh-cn.md16-26

添加新的公司问题

该存储库结构使得添加新的公司问题变得容易:

  1. 如果公司目录已存在,请将您的解决方案文件添加至其中
  2. 如果公司尚无目录,请在company/目录下创建一个
  3. 遵循现有解决方案的命名和文档模式
  4. 考虑也将问题添加到相关的主题目录中

这种协作方法有助于使存储库保持全面,并及时更新来自各种公司的最新面试问题。

来源: README.md374-522