Content
24 Lessons • 0 Quizzes • 0 Challenges
✨入门指南
- 1
课程概述
- 2
谁应该参加此课程?
Netflix
- 1
项目描述:Netflix
- 2
特性1:分组相似标题
- 3
功能 #2:获取热门电影
- 4
特性 #3:查找中位数年龄
- 5
功能四:流行度分析
- 6
功能五:获取最近观看过的影片
- 7
功能六:最不常观看的影片(concept)
- 8
功能 #7:浏览评分
- 9
功能 #8:验证用户会话
- 10
功能 #9:某一类型电影的组合
- 11
功能 #10:计算缓冲事件的中位数
- 12
功能 #11:生成电影观看顺序
- 13
功能 #12:保持“继续观看”进度条
- 14
我们学到了什么?
- 15
动手实践:分组字母异位词
- 16
DIY:合并 K 个已排序的列表
- 17
DIY:从数据流中找出中位数
- 18
DIY:单调数组
- 19
DIY:LRU 缓存
- 20
DIY:LFU 缓存
- 21
DIY:最小栈
- 22
DIY:验证栈序列
- 23
DIY:电话号码的字母组合
- 24
DIY:滑动窗口中位数
- 25
动手实践:排列
- 26
DIY:最大频率栈
Facebook
- 1
项目描述:Facebook
- 2
功能一:好友圈子
- 3
功能二:复制连接
- 4
功能三:查找故事ID
- 5
功能四:请求限制器
- 6
特性 #5:标记词
- 7
特性 #6:合并相似消息
- 8
功能 #7:分割帖子
- 9
特性 #8:重叠主题
- 10
特性 #9:重建决策树
- 11
我们学到了什么?
- 12
DIY:岛屿数量
- 13
DIY:省份数量
- 14
动手实践:无向图中的连通分量数量
- 15
DIY:克隆无向图
- 16
自定义:在旋转排序数组中搜索
- 17
DIY:日志记录速率限制器
- 18
DIY:富有表现力的词语
- 19
DIY:分组移位字符串
- 20
DIY:分割巧克力
- 21
动手实践:最小窗口子串
- 22
动手实践:根据前序遍历和中序遍历构造二叉树
搜索引擎
- 1
搜索引擎项目描述
- 2
功能一:存储和获取单词
- 3
功能二:设计搜索自动补全系统
- 4
特性 #3:添加空格以形成单词
- 5
功能4:添加空格后建议可能的查询
- 6
功能五:计算搜索排名因素
- 7
特性 #6:重新组织搜索结果
- 8
功能 #7:查找搜索时间
- 9
特性 #8:分布式进程协调器
- 10
特性 #9:查找最小服务器数量
- 11
我们学到了什么?
- 12
DIY:实现字典树
- 13
DIY:建议相关句子
- 14
DIY:单词拆分
- 15
DIY:单词拆分 II
- 16
自定义:除自身外数组元素的乘积
- 17
DIY:重新排列字符串
- 18
DIY:函数的独占时间
- 19
DIY:快照数组
- 20
DIY:硬币找零
- 21
DIY:零钱兑换 2
- 22
DIY:组合总和
谷歌日历
- 1
项目描述:Google 日历
- 2
功能一:寻找会议室
- 3
功能二:显示繁忙日程
- 4
特性 #3:判断会议是否可行
- 5
功能四:安排新会议
- 6
功能五:查找共同会议时间
- 7
特性 #6:寻找连续的两天
- 8
功能 #7:最长繁忙时段
- 9
总结:我们完成了什么?
- 10
DIY:查找区间集合
- 11
DIY:合并区间
- 12
DIY:我的日历
- 13
DIY:插入区间
- 14
DIY:区间列表交集
- 15
DIY:员工空闲时间
- 16
动手实践:寻找两个不重叠的子数组,每个子数组的和都等于目标值
- 17
DIY:最长连续序列
股票爬虫
- 1
股票爬虫项目描述
- 2
功能一:遍历DOM树
- 3
功能二:查找股票数据
- 4
特性 #3:遍历 DOM 树 II
- 5
功能四:最大利润
- 6
我们学到了什么?
- 7
DIY:二叉树层序遍历
- 8
自定义:二叉树的最低公共祖先
- 9
DIY:二叉树 III 的最低公共祖先
- 10
DIY:填充每个节点的下一个右侧节点指针
- 11
DIY:填充每个节点的下一个右侧节点指针 II
- 12
动手实践:最大子数组
- 13
自定义:最佳买卖股票时机
UBER
- 1
项目描述:Uber
- 2
功能1:选择最近的司机
- 3
特性 #2:路径代价
- 4
特性三:绘制并选择路径
- 5
功能四:金额大写
- 6
功能五:优步拼车
- 7
特性 #6:最长路径
- 8
功能七:最高排名
- 9
特性 #8:最优路径
- 10
我们学到了什么?
- 11
自定义:到原点的 K 个最近点
- 12
DIY:接雨水
- 13
DIY:除法求值
- 14
DIY:整数转英文单词
- 15
DIY:按权重随机选择
- 16
DIY:二叉树的直径
- 17
自定义:数组中的第K个最大元素
- 18
DIY:最小路径和
亚马逊
- 1
项目描述(亚马逊)
- 2
功能一:推荐免运费商品
- 3
功能二:推荐商品参与特别优惠
- 4
功能三:产品升级销售
- 5
功能四:复制产品数据
- 6
功能五:订单处理里程碑
- 7
功能六:商品常被一起查看
- 8
功能 #7:优化配送成本
- 9
功能 #8:合并建议
- 10
功能 #9:价格区间内的商品
- 11
功能 #10:计算购物车商品的总费用
- 12
功能 #11:广告投放
- 13
功能 #12:仓库与配送点
- 14
功能 #13:基于时间的商品价格存储
- 15
功能 #14:查找相似产品
- 16
我们学到了什么?
- 17
自定义:两数之和
- 18
DIY:三数之和
- 19
DIY:最接近的三数之和
- 20
自定义:在 O(1) 时间内实现插入、删除和随机获取
- 21
自定义:插入、删除、随机获取元素 O(1) - 允许重复元素
- 22
DIY:复制带有随机指针的链表
- 23
自定义:在有序数组中查找元素的首个和末个位置
- 24
DIY:在字符串中查找所有变位词
- 25
DIY:随机索引选择
- 26
DIY:连续子数组和
- 27
DIY:账户合并
- 28
DIY:二叉搜索树的范围和
- 29
DIY:基本计算器 II
- 30
DIY:基础计算器 III
- 31
DIY:读取N个字符 — 给定Read4 II — 多次调用
- 32
DIY:墙壁与门
- 33
DIY:基于时间的键值存储
- 34
DIY:两个数组的交集
Zoom
- 1
项目描述:Zoom
- 2
功能一:显示会议等候室
- 3
功能二:序列化与反序列化参与者数据
- 4
功能三:会议活动
- 5
功能四:验证已排序的参与者数据
- 6
功能五:移动设备自动旋转
- 7
我们学到了什么?
- 8
DIY:二叉搜索树迭代器
- 9
DIY:序列化和反序列化二叉树
- 10
DIY:跳跃游戏 IV
- 11
DIY:验证二叉搜索树
- 12
DIY:旋转图像
查重检测
- 1
项目描述:抄袭检测器
- 2
特性 #1:可能的匹配
- 3
特性 #2:返回匹配结果
- 4
我们学到了什么?
- 5
DIY:匹配的子序列数量
- 6
DIY:最小窗口子序列
网络
- 1
网络项目描述
- 2
特性 #1:总时间
- 3
功能二:TTL 过期
- 4
特性 #3:最少跳跃次数
- 5
功能四:最大路由器数量
- 6
功能 #5:更新VLAN ID
- 7
特性 #6:传输错误
- 8
功能七:通过网络分割文件
- 9
特性 #8:最大时钟偏移
- 10
功能 #9:更新配置
- 11
特性 #10:最小变异
- 12
特性 #11:加权指数退避
- 13
功能 #12:峰值信号强度
- 14
我们学到了什么?
- 15
DIY:通知所有员工所需的时间
- 16
DIY:二叉树中所有与目标节点距离为 K 的节点
- 17
DIY:跳跃游戏 II
- 18
DIY:矩阵中的最长递增路径
- 19
DIY:洪水填充
- 20
DIY:验证回文字符串 II
- 21
DIY:划分标签
- 22
动手实践:节点与其祖先之间的最大差值
- 23
DIY:腐烂的橘子
- 24
DIY:最长子数组,其绝对差小于等于限制
- 25
自定义:两数相加
- 26
自定义:两数相加 II
- 27
DIY:寻找峰值元素
网络安全
- 1
网络安全项目描述
- 2
功能 #1:验证数据包结构
- 3
功能二:验证消息完整性
- 4
功能三:查找字典
- 5
功能四:解码消息的多种方法
- 6
功能五:符合条件的候选人
- 7
我们学到了什么?
- 8
DIY:UTF-8 校验
- 9
DIY:验证外星字典
- 10
DIY:外星人字典
- 11
DIY:解码方法
- 12
DIY:找到 K 个最接近的元素
操作系统
- 1
操作系统项目描述
- 2
功能一:分配空间
- 3
功能二:恢复进程(concept)
- 4
特性三:调度进程
- 5
功能四:压缩文件
- 6
功能五:恢复文件
- 7
特性 #6:文件管理系统
- 8
功能七:序列化和反序列化文件系统
- 9
特性 #8:压缩文件 II
- 10
功能 #9:文件搜索
- 11
功能 #10:解码消息
- 12
功能 #11:目录迭代器
- 13
特性 #12:优先级验证
- 14
功能 #13:反转命令
- 15
特性 #14:释放进程锁
- 16
特性 #15:按优先级重建队列
- 17
我们学到了什么?
- 18
DIY:和为 K 的子数组
- 19
DIY:有序数组中的缺失元素
- 20
DIY:课程安排
- 21
DIY:课程安排 II
- 22
DIY:序列重构
- 23
DIY:连接词
- 24
DIY:最小移除以使括号有效
- 25
DIY:设计添加和搜索单词的数据结构
- 26
自定义:序列化和反序列化 N 叉树
- 27
DIY:字符串压缩
- 28
DIY:正则表达式匹配
- 29
DIY:通配符匹配
- 30
DIY:24点游戏
- 31
DIY:扁平化嵌套列表迭代器
- 32
动手实践:青蛙跳
- 33
DIY:根据身高重建队列
- 34
DIY:反转字符串中的单词
- 35
DIY:有序数组中的单一元素
语言编译器
- 1
语言编译器项目描述
- 2
功能 #1:删除注释
- 3
功能二:计算算术表达式
- 4
特性三:循环展开
- 5
特性 #4:通过替换进行优化
- 6
特性 #5:编译步骤失败
- 7
功能6:最常见标记
- 8
特性 #7:移动设备上的幂运算
- 9
功能 #8:在省电模式下进行分割
- 10
功能 #9:验证程序括号
- 11
我们学到了什么?
- 12
动手实践:统计注释中的某个单词出现次数
- 13
DIY:简易计算器
- 14
DIY:解码字符串
- 15
DIY:在字符串中查找并替换
- 16
DIY:第一个错误版本
- 17
DIY:嵌套列表权重求和
- 18
DIY:最频繁出现的单词
- 19
自定义:计算 x 的 n 次方
- 20
自定义:两数相除
- 21
DIY:有效的括号
- 22
DIY:有效括号字符串
Boggle
- 1
Boggle 项目描述 Boggle 是一款经典的单词拼写游戏,玩家需要在由随机字母组成的 4x4 方格中寻找尽可能多的合法单词。游戏的目标是通过相邻的字母(包括水平、垂直和对角线方向)连接形成有效的英文单词。 本项目旨在实现一个 Boggle 游戏的完整版本,包含以下核心功能: - 随机生成一个 4x4 的字母网格。 - 提供一个词典文件(例如:包含常见英文单词的文本文件),用于验证输入的单词是否合法。 - 实现一个搜索算法,从每个格子出发,探索所有可能的路径,找出所有有效的单词。 - 支持用户输入单词并检查其有效性。 - 计算并显示玩家找到的单词数量及得分(根据单词长度计分)。 - 可选功能:支持图形界面(GUI),如使用 Python 的 Tkinter 或其他 GUI 框架;或提供命令行交互界面。 技术要求: - 使用一种编程语言(如 Python、Java、C++ 等)实现。 - 使用深度优先搜索(DFS)或回溯算法来遍历网格中的所有可能路径。 - 优化搜索过程,避免重复访问同一格子。 - 保证单词在词典中存在,并且符合游戏规则(如至少 3 个字母)。 扩展功能建议: - 添加计时器,限制每轮游戏时间。 - 支持多玩家模式或排行榜。 - 提供提示功能,帮助玩家发现潜在单词。 - 支持不同大小的网格(如 5x5 或 3x3)。 该项目适合练习字符串处理、递归与回溯算法、数据结构(如字典树 Trie)以及基本的游戏逻辑设计。
- 2
功能一:在 Boggle 棋盘中搜索单个单词
- 3
功能二:在 Boggle 棋盘中搜索最多单词数量
- 4
我们学到了什么?
- 5
DIY:单词搜索 I
- 6
DIY:单词搜索 II
拼字游戏 2.0
- 1
拼字游戏项目描述
- 2
特性1:最少移动次数
- 3
特性 #2:可能的结果
- 4
我们学到了什么?
- 5
DIY:单词接龙 I
- 6
DIY:单词接龙 II
游戏
- 1
游戏项目描述
- 2
功能 #1:顺子手牌
- 3
功能 #2:从卡片中获得的最大分数
- 4
功能 #3:气球爆破
- 5
我们学到了什么?
- 6
DIY:将数组划分为 K 个连续数字的集合
- 7
DIY:从数组的任一端获取最大和
- 8
DIY:移除字符串中的所有相邻重复字符
- 9
DIY:删除字符串中的所有相邻重复项 II
股票
- 1
股票项目描述
- 2
功能一:验证价格
- 3
特性 #2:结算期
- 4
特性三:目标达成
- 5
功能 #4:里程碑达成
- 6
功能五:顶级经纪商
- 7
功能六:分配交易
- 8
功能 #7:处理交易
- 9
功能 #8:查找区间
- 10
我们学到了什么?
- 11
DIY:有效数字
- 12
DIY:任务调度器
- 13
DIY:将数组拆分为连续子序列
- 14
动手实践:在二维矩阵中搜索
- 15
DIY:前 K 个高频元素
- 16
自定义:每 k 个一组反转链表
- 17
DIY:反转链表 II
- 18
DIY:字符串转整数(atoi)
- 19
DIY:每日温度
计算生物学
- 1
计算生物学项目描述
- 2
特性 #1:变异DNA
- 3
功能二:病毒检测
- 4
功能三:定位蛋白质
- 5
功能四:识别蛋白质
- 6
特性五:变异病毒
- 7
功能6:识别物种
- 8
功能七:检测蛋白质
- 9
功能 #8:DNA 样本之间的相似性度量
- 10
特性 #9:第 K 个缺失的基因
- 11
我们学到了什么?
- 12
DIY:字符串转换为另一个字符串
- 13
DIY:最多包含 K 个不同字符的最长子串
- 14
自定义:最长回文子串
- 15
DIY:验证回文
- 16
动手实践:下一个排列
- 17
DIY:无重复字符的最长子串
- 18
DIY:回文排列
- 19
DIY:回文子串
- 20
DIY:编辑距离
- 21
自定义:第K个缺失的正整数
移动运营商(AT&T)
- 1
项目描述:移动运营商
- 2
功能一:确定位置
- 3
特性 #2:低覆盖率区域
- 4
功能三:升级站点
- 5
功能四:查询峰值用户
- 6
特性 #6:最密集部署
- 7
功能七:最大用户数
- 8
功能五:最大连续区域
- 9
功能 #8:最大信号强度
- 10
我们学到了什么?
- 11
自定义:搜索二维矩阵 II
- 12
动手实践:柱状图中的最大矩形
- 13
DIY:最大矩形
- 14
DIY:打开锁
- 15
DIY:二维区域和检索 — 不可变
- 16
DIY:最小面积矩形
- 17
DIY:滑动窗口最大值
- 18
DIY:岛屿的最大面积
- 19
DIY:最大连续1的个数 III
- 20
DIY:最短桥
Twitter
- 1
项目描述:推特(Twitter)
- 2
功能 #1:添加点赞
- 3
功能二:合并推文至推特动态
- 4
特性三:识别互动高峰期
- 5
功能四:将用户分为两组
- 6
功能五:绘制热门推文的全球分布图
- 7
功能 #6:入站推文预测器
- 8
功能七:热门话题标签
- 9
我们学到了什么?
- 10
DIY:二进制加法
- 11
DIY:字符串相乘
- 12
动手实践:合并已排序的数组
- 13
自定义:三个不重叠数组的最大和
- 14
动手实践:图是否为二分图?
- 15
DIY:天际线问题
- 16
DIY:从数据流中计算移动平均值
- 17
动手实践:查找系统中的重复文件
树
- 1
翻转二叉树
- 2
翻转等价二叉树
- 3
二叉树中的最大路径和
- 4
二叉树的锯齿形层序遍历
- 5
二叉树的右视图
- 6
二叉树的垂直遍历
- 7
二叉树的边界
- 8
将二叉树展开为链表
杂项
- 1
最小骑士移动
- 2
稀疏矩阵乘法
- 3
设计一个内存文件系统
- 4
螺旋矩阵
- 5
设计井字棋
- 6
迷宫
- 7
复原IP地址
- 8
重新安排行程
- 9
文本对齐
- 10
加油站
- 11
强密码检查器
- 12
数独求解器
- 13
太平洋大西洋水流
- 14
时钟上时针与分针之间的夹角
结论
- 1
接下来该去哪里?
Certificate of Completion
Showcase your accomplishment by sharing your certificate of completion.
Course Author:Anonymous User