← 全部学习路径
华为 OD 20 天速通课程
以经典例题打牢算法方法论 + OD 高频题实战,每天配套题解文章与视频。
20 天速通华为 OD 机试:以 LeetCode 经典题打牢算法方法论,配套 OD 真题实战。每天投入 6 小时以上效果最佳。
知识点
开营仪式讲解华为OD技术笔试须知讲解ACM模式输入输出总结讲解Python常用函数、方法、技巧汇总
知识点
OOP、数组、栈、队列结构、知识讲解基础知识语法知识设计类栈队列
精讲题目(点击查看题解文章 / 高频题)
作业
知识点
哈希数据结构知识讲解基础知识语法知识哈希集合哈希表用于统计频率
精讲题目(点击查看题解文章 / 高频题)
LC217. 存在重复元素 LC349. 两个数组的交集 LC242. 有效的字母异位词 LC383. 赎金信(HJ81. 字符串字符匹配) 【哈希表】2023Q1A-集五福 【哈希表】2023Q1A-删除最少字符 另外,请思考:如果题目已经告诉你元素的范围一定是小写字母或一定是大写字母(如LC242. 有效的字母异位词),那么能否用一个长度为26的数组来代替哈希表【统计频率】的功能? 对于LC387. 字符串中的第一个唯一字符,如果只使用哈希表来完成的话,需要用到两次遍历。能否使用队列来优化该过程,使得整个算法只需要一次遍历? 另外,仔细比较LC349. 两个数组的交集和LC350. 两个数组的交集 II两题,思考哈希集合和哈希表两者的相似之处和区别
知识点
相关直播加餐:单调栈基础知识讲解知识讲解单调栈栈与队列综合
精讲题目(点击查看题解文章 / 高频题)
知识点
双指针
精讲题目(点击查看题解文章 / 高频题)
知识点
双指针背向双指针(两个指针从中间往两边移动)
精讲题目(点击查看题解文章 / 高频题)
LC9. 回文数 LC125. 验证回文串 LC167. 两数之和II- 输入有序数组 LC11. 盛水最多的容器 LC15.三数之和 LC75.颜色分类 LC167. 两数之和II是一道很好的双指针入门题,请仔细体会本题和LC1. 两数之和的区别,思考本题是如何通过双指针算法来降低空间复杂度的 请仔细比较LC26. 删除有序数组中的重复项和LC80. 删除有序数组中的重复项II这两道题目的异同点,后者能否在前者的代码上稍加修改完成? LC27. 移除元素可以有两种双指针的解法,请比较其中的差异。注意请将其同向双指针的解法和LC283. 移动零进行比较 从LC9. 回文数、LC125. 验证回文串和LC680. 验证回文串II可以看出,和【回文序列判断】有关的题目,相向双指针是其中一种可能的解法(不是绝对的)
知识点
贪心
精讲题目(点击查看题解文章 / 高频题)
知识点
相关直播加餐:贪心
精讲题目(点击查看题解文章 / 高频题)
知识点
滑动窗口(长度可变)
精讲题目(点击查看题解文章 / 高频题)
作业
LC1695. 删除子数组的最大分数 LC2024. 考试的最大困扰度 【不定滑窗】2023C-求满足条件的最长子串的长度 【不定滑窗】2023C-字符串摘要 【不定滑窗】2023C-最长的指定瑕疵度的元音子串 【不定滑窗】2023C-最大可购买的宝石数量 【不定滑窗】2023C-最小矩阵宽度 【滑动窗口】应该称之为一种技巧更合适,本质上是一种特殊的【同向双指针】算法,但由于过于其使用频率过高,所以才有了滑窗这个名字某些题目如LC904水果成篮、LC1658将x减到0的最小操作数、LC1695删除子数组的最大分数等,乍一看可能不容易看出是使用滑动窗口来求解,需要灵活思维加以变通
知识点
滑动窗口(长度不可变)
精讲题目(点击查看题解文章 / 高频题)
LC1984. 学生分数的最小差值 LC1456. 定长子串中元音的最大数目 LC567. 字符串的排列 LC1052. 爱生气的书店老板 【固定滑窗】2023Q1A-找出通过车辆最多颜色 【固定滑窗】2023Q1A-知识图谱新词挖掘 【长度不可变滑动窗口】类型的题目可能有简单题,相信在已经掌握了【长度可变滑动窗口】类型之后,这些题目也可以迎刃而解。注意比较两者的异同
知识点
开始上难度了!!!动态规划(序列DP)入门问题(理解DP基础概念)递归往往是从后往前计算DP往往是从前往后计算DP数组的定义是什么?动态转移方程是什么?如何对DP数组进行初始化?
精讲题目(点击查看题解文章 / 高频题)
知识点
相关直播加餐:动态规划(序列DP)最长递增子序列(LIS)问题最长公共子序列(LCS)问题
精讲题目(点击查看题解文章 / 高频题)
LC300. 最长递增子序列 (必懂题) LC673. 最长递增子序列的个数 LC334. 递增的三元组 LC718. 最长重复子数组(HJ75. 公共子串计算) (必懂题) LC1143. 最长公共子序列 LCS问题是OD考试非常高频的考点,其难点在于dp数组的构建与定义较难想到。其实用一个二维dp数组来表示两个序列之间的关系,这是一种非常常用的技巧,但如果从来没有见过这样的做法是很难想到应该这样完成的LC1143. 最长公共子序列和LC718. 最长重复子数组两道题之间的差别仅仅在于序列是否可以连续地取,在思路和代码上是非常类似的
知识点
动态规划(状态DP)股票问题一定要按照下面的顺序做题!!!该系列我会讲解一个模板解法
精讲题目(点击查看题解文章 / 高频题)
知识点
相关直播加餐:动态规划(背包DP)0-1背包完全背包
精讲题目(点击查看题解文章 / 高频题)
知识点
相关直播加餐:二分查找在排序数组中进行二分查找在数轴上进行二分查找在利用问题的二段性进行二分
精讲题目(点击查看题解文章 / 高频题)
LeetCode 35、搜索插入位置LeetCode 704、二分查找LeetCode 34、在排序数组中查找元素的第一个和最后一个位置LeetCode 367、有效的完全平方数LeetCode 69、x 的平方根LeetCode875、爱吃香蕉的珂珂 【二分查找】2023Q1A-开放日活动 【二分查找】2023B-食堂供餐
作业
【二分查找】2023C-孙悟空吃蟠桃 【二分查找】2023C-部门人力分配 【模拟】2023B-统计监控 LC200. 岛屿数量 LC695. 岛屿的最大面积 【DFS/BFS】2023Q1A-开心消消乐 【DFS/BFS】2023B-寻找最大价值的矿堆 LC547. 省份数量 【DFS/BFS】2023Q1A-Linux发行版的数量 LC841. 钥匙和房间 LC994. 腐烂的橘子 【BFS】2023Q2B-火星改造 LC207. 课程表 【BFS】2023Q1-快速开租建站 【DFS/BFS】2023Q2-广播服务器 【DFS/BFS】2023Q1A-机器人活动区域 【BFS】2023C-周末爬山 LC210. 课程表II 【BFS】2023C-启动多任务排序 【BFS】2023C-查找一个有向网络的头节点和尾节点 LeetCode200、岛屿数量 【DFS/BFS】2025A-开心消消乐 【DFS/BFS】2024D-图像物体的边界 LC547. 省份数量 【DFS/BFS】2024E-广播服务器 LeetCode695、岛屿的最大面积 【DFS/BFS】2024E-寻找价值最大的矿堆【DFS/BFS】2024E-机器人活动区域 【DFS/BFS】2025A-地图寻宝 【DFS/BFS】2025A-战场索敌 【DFS/BFS】2024E-Linux发行版的数量 【DFS/BFS】2024E-精准核酸检测 LC994. 腐烂的橘子 【BFS】2025A-计算网络信号 【BFS】2025A-火星改造 【BFS】2024E-周末爬山 【BFS】2024E-跳马问题 【BFS】2023B-最长广播响应 LC841. 钥匙和房间 【BFS】2025A-微服务的集成测试 【BFS】2024D-查找一个有向网络的头节点和尾节点 【BFS】2025A-数据单元的变量替换 LC207. 课程表 LC210. 课程表II 【BFS】2023A-快速开租建站 LeetCode79. 单词搜索【回溯】2025A-中庸行者【回溯】2024E-找到它 【回溯】2024E-加密算法 【DFS/BFS】2025A-寻找最富裕的小家庭 【DFS/BFS】2024E-树状结构查询 【BFS】2025A-BOSS的收入 【DFS/BFS】2025A-文件目录大小 【DFS】2025A-悄悄话花费的时间
知识点
相关直播加餐:2024/11/02真题讲解(回溯专题)回溯
精讲题目(点击查看题解文章 / 高频题)
LeetCode 78、子集LeetCode 90、子集IILeetCode 46、全排列LeetCode 47、全排列IILeetCode 39、组合总和LeetCode 40、组合总和II