name: 面试题库 description: 按公司、题型模式和难度整理的面试题库。提供题目推荐、进度跟踪、薄弱环节识别以及FAANG面试准备的高级题目替代方案。 allowed-tools: Bash, Read, Write, Grep, Glob, WebSearch, WebFetch metadata: author: babysitter-sdk version: “1.0” category: 算法优化 skill-id: SK-ALGO-024 priority: high
面试题库
一个专门用于整理、组织和推荐编程面试题目的技能,支持公司针对性准备、模式化练习和进度跟踪。
目的
提供一个全面的面试题库,包含:
- 按FAANG公司和难度组织的题目
- 基于模式的分类(Blind 75, NeetCode 150等)
- 难度递进推荐
- 进度跟踪和薄弱环节识别
- 高级题目替代方案
功能
核心特性
-
题目组织
- 按公司(谷歌、Meta、亚马逊、苹果、微软等)
- 按模式(双指针、滑动窗口、动态规划等)
- 按难度(简单、中等、困难)
- 按主题(数组、树、图等)
- 按频率(面试中最常被问到的)
-
精选题目列表
- Blind 75(核心必刷75题)
- NeetCode 150(扩展核心列表)
- LeetCode Top Interview Questions
- 公司特定高频题
- 模式特定题目集
-
进度跟踪
- 按类别统计已解决问题
- 薄弱环节识别
- 每种题型花费时间
- 成功率跟踪
- 间隔重复复习
-
推荐系统
- 基于进度的下一题推荐
- 强化薄弱环节的题目
- 公司特定练习计划
- 基于时间的学习计划
题目列表
Blind 75
覆盖所有主要模式的75道核心必刷题:
| 类别 | 数量 | 主题 |
|---|---|---|
| 数组与哈希 | 9 | 两数之和,字母异位词分组,前K个高频元素 |
| 双指针 | 5 | 验证回文串,三数之和,盛最多水的容器 |
| 滑动窗口 | 6 | 买卖股票的最佳时机,无重复字符的最长子串 |
| 栈 | 7 | 有效的括号,最小栈,每日温度 |
| 二分查找 | 7 | 搜索旋转排序数组,寻找最小值 |
| 链表 | 11 | 反转链表,合并两个有序链表,环形链表 |
| 树 | 15 | 翻转二叉树,二叉树的最大深度,二叉树的层序遍历 |
| 前缀树 | 3 | 实现前缀树,单词搜索 II |
| 堆/优先队列 | 7 | 合并K个升序链表,前K个高频元素 |
| 回溯 | 9 | 子集,全排列,组合总和 |
| 图 | 13 | 岛屿数量,克隆图 |
| 动态规划 | 12 | 爬楼梯,打家劫舍,零钱兑换 |
| 贪心算法 | 8 | 最大子数组和,跳跃游戏 |
| 区间 | 6 | 合并区间,会议室 |
| 数学与几何 | 8 | 旋转图像,矩阵置零 |
| 位运算 | 7 | 只出现一次的数字,位1的个数 |
NeetCode 150
包含150道题目的扩展列表,用于全面准备:
- 包含所有75道Blind 75题目
- 75道额外题目用于深入覆盖
- 每个类别更多高级题目
公司特定列表
| 公司 | 重点领域 | 高频模式 |
|---|---|---|
| 谷歌 | 问题解决,优化 | 数组,动态规划,图 |
| Meta | 数组,树,系统设计 | 二叉树,数组 |
| 亚马逊 | OOP,系统设计,领导力 | 树,BFS/DFS |
| 苹果 | iOS/macOS,算法 | 数组,树 |
| 微软 | 编码,系统设计 | 动态规划,数组,图 |
| Netflix | 分布式系统 | 图,动态规划 |
使用方法
获取推荐题目
# 基于进度获取下一题
面试题库 recommend --user progress.json
# 获取特定模式的题目
面试题库 list --pattern "dynamic-programming" --difficulty medium
# 获取公司特定题目
面试题库 company --name google --count 50
跟踪进度
# 标记问题为已解决
面试题库 solve --problem "two-sum" --time 15 --attempts 1
# 获取进度报告
面试题库 progress --user progress.json
# 识别薄弱环节
面试题库 analyze --user progress.json
生成学习计划
# 生成4周学习计划
面试题库 plan --weeks 4 --target google --level intermediate
# 生成每日练习集
面试题库 daily --count 3 --user progress.json
输出模式
题目条目
{
"id": "two-sum",
"title": "两数之和",
"difficulty": "简单",
"patterns": ["数组", "哈希表"],
"companies": ["谷歌", "亚马逊", "Meta", "苹果", "微软"],
"frequency": 95,
"url": "https://leetcode.com/problems/two-sum/",
"premiumAlternative": null,
"hints": [
"使用哈希表实现O(1)查找",
"存储补数作为键,索引作为值"
],
"timeToSolve": {
"target": 10,
"beginner": 20,
"expert": 5
},
"relatedProblems": ["3sum", "4sum", "two-sum-ii"]
}
进度报告
{
"user": "user123",
"totalSolved": 150,
"byDifficulty": {
"简单": 50,
"中等": 80,
"困难": 20
},
"byPattern": {
"数组": { "solved": 25, "total": 30 },
"动态规划": { "solved": 15, "total": 25 },
"图": { "solved": 10, "total": 20 }
},
"weakAreas": ["图", "高级动态规划", "前缀树"],
"recommendations": [
{ "problem": "course-schedule", "reason": "强化图算法" },
{ "problem": "word-break", "reason": "练习动态规划" }
],
"streak": 15,
"lastPracticed": "2025-01-24"
}
学习计划
{
"duration": "4周",
"target": "谷歌",
"level": "中级",
"schedule": [
{
"week": 1,
"focus": ["数组", "字符串", "双指针"],
"problems": [
{ "day": 1, "problems": ["two-sum", "valid-anagram", "contains-duplicate"] },
{ "day": 2, "problems": ["best-time-to-buy", "max-subarray", "product-except-self"] }
]
},
{
"week": 2,
"focus": ["滑动窗口", "栈", "二分查找"],
"problems": [...]
}
]
}
基于模式的组织
数组模式
| 模式 | 核心题目 | 技术 |
|---|---|---|
| 双指针 | 三数之和,盛最多水的容器 | 收敛指针 |
| 滑动窗口 | 无重复字符的最长子串,最小覆盖子串 | 扩展/收缩窗口 |
| 前缀和 | 和为K的子数组 | 累积和 |
| Kadane算法 | 最大子数组和 | 跟踪以i结尾的最大值 |
树模式
| 模式 | 核心题目 | 技术 |
|---|---|---|
| 递归DFS | 二叉树的最大深度,路径总和 | 递归 |
| BFS层序遍历 | 二叉树的层序遍历 | 队列 |
| 构建树 | 从前序与中序遍历序列构造二叉树 | 分治 |
图模式
| 模式 | 核心题目 | 技术 |
|---|---|---|
| BFS最短路径 | 单词接龙 | 逐层遍历 |
| DFS连通分量 | 岛屿数量 | 访问所有节点 |
| 拓扑排序 | 课程表 | Kahn算法 |
| 并查集 | 连通分量数量 | DSU |
动态规划模式
| 模式 | 核心题目 | 技术 |
|---|---|---|
| 一维线性 | 打家劫舍,爬楼梯 | dp[i]依赖于dp[i-1], dp[i-2] |
| 二维网格 | 不同路径,最小路径和 | dp[i][j]来自邻居 |
| 字符串DP | 编辑距离,最长公共子序列 | dp[i][j]用于子字符串 |
| 背包问题 | 零钱兑换,分割等和子集 | 包含/排除物品 |
集成选项
MCP服务器
InterviewReady MCP服务器:
# 访问精选面试内容
npm install -g interviewready-mcp-server
外部资源
与流程集成
此技能增强:
faang-interview-prep- 结构化FAANG准备mock-coding-interview- 模拟面试题目选择interview-problem-explanation- 解释解决方案skill-gap-analysis- 识别薄弱环节
面试准备时间线
1周准备
专注于高频问题:
- 第1-2天:数组和字符串(15题)
- 第3-4天:树和图(10题)
- 第5-6天:动态规划和回溯(10题)
- 第7天:复习和模拟面试
1个月准备
全面覆盖:
- 第1周:基础(数组,字符串,哈希表)
- 第2周:数据结构(树,图,堆)
- 第3周:算法(动态规划,回溯,贪心)
- 第4周:复习,模拟面试,薄弱环节
3个月准备
深度掌握:
- 第1个月:所有简单+中等基础题
- 第2个月:高级中等+困难题
- 第3个月:公司特定+模拟面试
参考资料
错误处理
| 错误 | 原因 | 解决方案 |
|---|---|---|
PROBLEM_NOT_FOUND |
数据库中找不到题目 | 通过备用名称搜索 |
PREMIUM_LOCKED |
需要LeetCode高级会员 | 使用替代题目 |
INVALID_COMPANY |
公司不被识别 | 检查支持的公司 |
PROGRESS_LOAD_FAILED |
无法加载进度文件 | 初始化新进度 |
最佳实践
- 质量优于数量 - 深入理解解决方案
- 模式识别 - 按模式分组问题
- 计时练习 - 在面试条件下练习
- 定期复习 - 间隔重复有助于记忆
- 模拟面试 - 练习解释解决方案
- 公司研究 - 专注于公司特定模式