当前位置: 首页 > ops >正文

【职业】算法与数据结构专题

原则:只看easy和medium、保持手感、不过度深究;

参考资料

参考1 :数据结构基础

● 概要:队列、数组、栈和队列、链表、二分搜索树、集合、堆、线段树
● 课程笔记:https://blog.csdn.net/sinat_38368658/category_8571677.html

参考2:算法与数据结构基础(c++版)

● 概要:排序、堆、二分搜索树、并查集、图、最小生成树
● 课程:https://coding.imooc.com/class/chapter/71.html#Anchor(liubobo)
● 课程笔记:https://blog.csdn.net/sinat_38368658/category_9285166.html?spm=1001.2014.3001.5482

参考3:算法与数据结构(JavaScript版)

● 概要:栈、队列、链表、集合、字典、树、图、堆;排序、动态规划、分治、贪心、回溯
● 课程:https://coding.imooc.com/class/446.html
● 课程笔记:https://github.com/Elylicery/FE-Job-Notes/blob/main/%E5%89%8D%E7%AB%AF%E7%AE%97%E6%B3%95%E4%B8%8E%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84.md

参考4: 算法面试-leetcode题分类讲解

● 课程:https://coding.imooc.com/class/chapter/82.html#Anchor(liubobo、在网盘里)
课程目录
第1章 算法面试到底是什么鬼? 试看5 节 | 66分钟
一提起算法面试,很多同学就会心有余悸。可其实,大多数企业的算法面试,并没有那么可怕。并不是一定要啃完整本《算法导论》,才能玩儿转算法面试;也并不是只有ACM参赛选手,才能笑傲算法面试。恰恰相反,大多数算法面试关注的算法思维,其实很基础。在这一章,和大家聊一聊,算法面试,到底是什么鬼?…
收起列表
○ 视频:1-1 算法面试不仅仅是正确的回答问题 (19:37)试看
○ 视频:1-2 算法面试只是面试的一部分 (14:51)试看
○ 视频:1-3 如何准备算法面试 (17:38)试看
○ 视频:1-4 如何回答算法面试问题 (13:40)
○ 作业:1-5 大厂面试为什么总考算法?
第2章 面试中的复杂度分析7 节 | 108分钟
很多同学一提起复杂度分析就头疼,马上想起了《算法导论》中复杂的数学推导。但其实在一般的企业面试中,对复杂度的分析要求并没有那么高,但也是绕不过去的坎儿。在这一章,和大家介绍一下,面试中需要掌握的复杂度分析。…
收起列表
○ 视频:2-1 究竟什么是大O(Big O) (19:52)
○ 视频:2-2 对数据规模有一个概念 (11:26)
○ 视频:2-3 简单的复杂度分析 (19:20)
○ 视频:2-4 亲自试验自己算法的时间复杂度 (14:53)
○ 视频:2-5 递归算法的复杂度分析 (14:46)
○ 视频:2-6 均摊时间复杂度分析(Amortized Time Analysis) (15:16)
○ 视频:2-7 避免复杂度的震荡 (11:25)
第3章 数组中的问题其实最常见8 节 | 129分钟
面试中的算法问题,有很多并不需要复杂的数据结构支撑。就是用数组,就能考察出很多东西了。其实,经典的排序问题,二分搜索等等问题,就是在数组这种最基础的结构中处理问题的。在这一章中,我们学习常见的数组中处理问题的方法。…
收起列表
○ 视频:3-1 从二分查找法看如何写出正确的程序 (15:27)
○ 视频:3-2 改变变量定义,依然可以写出正确的算法 (12:06)
○ 视频:3-3 在LeetCode上解决第一个问题 Move Zeros (13:27)
○ 视频:3-4 即使简单的问题,也有很多优化的思路 (15:30)
○ 视频:3-5 三路快排partition思路的应用 Sort Color (22:26)
○ 视频:3-6 对撞指针 Two Sum II - Input Array is Sorted (19:44)
○ 视频:3-7 滑动窗口 Minimum Size Subarray Sum (14:09)
○ 视频:3-8 在滑动窗口中做记录 Longest Substring Without Repeating Characters (15:20)
第4章 查找表相关问题8 节 | 111分钟
查找,是使用计算机处理问题时的一个最基本的任务,因此也是面试中非常常见的一类问题。很多算法问题的本质,就是要能够高效查找。学会使用系统库中的map和set,就已经成功了一半。
收起列表
○ 视频:4-1 set的使用 Intersection of Two Arrays (11:12)
○ 视频:4-2 map的使用 Intersection of Two Arrays II (13:05)
○ 视频:4-3 set和map不同底层实现的区别 (19:00)
○ 视频:4-4 使用查找表的经典问题 Two Sum (16:56)
○ 视频:4-5 灵活选择键值 4Sum II (13:25)
○ 视频:4-6 灵活选择键值 Number of Boomerangs (14:45)
○ 视频:4-7 查找表和滑动窗口 Contain Duplicate II (11:20)
○ 视频:4-8 二分搜索树底层实现的顺序性 Contain Duplicate III (10:50)
第5章 在链表中穿针引线6 节 | 88分钟
链表是一种特殊的线性结构,由于不能像数组一样进行随机的访问,所以和链表相关的问题有他自身的特点。我将之称为穿针引线。我们在这一章,就来看一看,如何在链表中穿针引线。
收起列表
○ 视频:5-1 链表,在节点间穿针引线 Reverse Linked List (15:44)
○ 视频:5-2 测试你的链表程序 (16:26)
○ 视频:5-3 设立链表的虚拟头结点 Remove Linked List Elements (17:08)
○ 视频:5-4 复杂的穿针引线 Swap Nodes in Pairs (13:30)
○ 视频:5-5 不仅仅是穿针引线 Delete Node in a Linked List (07:29)
○ 视频:5-6 链表与双指针 Remove Nth Node Form End of List (16:49)
第6章 栈,队列,优先队列8 节 | 111分钟
栈和队列虽然是简单的数据结构,但是使用这些简单的数据结构所解决的算法问题不一定简单。在这一章里,我们将来探索,和栈与队列相关的算法问题。
收起列表
○ 视频:6-1 栈的基础应用 Valid Parentheses (16:10)
○ 视频:6-2 栈和递归的紧密关系 Binary Tree Preorder, Inorder and Postorder Traversal (16:03)
○ 视频:6-3 运用栈模拟递归 (19:33)
○ 视频:6-4 队列的典型应用 Binary Tree Level Order Traversal (10:26)
○ 视频:6-5 BFS和图的最短路径 Perfect Squares (21:20)
○ 视频:6-6 优先队列 (11:09)
○ 视频:6-7 优先队列相关的算法问题 Top K Frequent Elements (15:37)
○ 作业:6-8 两种关于 topK 问题求解思路的套路
第7章 二叉树和递归7 节 | 83分钟
递归,是使用计算机解决问题的一种重要的思考方式。而二叉树由于其天然的递归结构,使得基于二叉树的算法,均拥有着递归性质。使用二叉树,是研究学习递归算法的最佳入门方式。在这一章里,我们就来看一看二叉树中的递归算法。…
收起列表
○ 视频:7-1 二叉树天然的递归结构 (15:58)
○ 视频:7-2 一个简单的二叉树问题引发的血案 Invert Binary Tree (09:08)
○ 作业:7-3 不会翻转二叉树的大神
○ 视频:7-4 注意递归的终止条件 Path Sum (12:04)
○ 视频:7-5 定义递归问题 Binary Tree Path (13:34)
○ 视频:7-6 稍复杂的递归逻辑 Path Sum III (14:11)
○ 视频:7-7 二分搜索树中的问题 Lowest Common Ancestor of a Binary Search Tree (17:46)
第8章 递归和回溯法8 节 | 156分钟
回溯法是解决很多算法问题的常见思想,甚至可以说是传统人工智能的基础方法。其本质依然是使用递归的方法在树形空间中寻找解。在这一章,我们来具体看一下将递归这种技术使用在非二叉树的结构中,从而认识回溯这一基础算法思想。…
收起列表
○ 视频:8-1 树形问题 Letter Combinations of a Phone Number (18:09)
○ 视频:8-2 什么是回溯 (18:16)
○ 视频:8-3 排列问题 Permutations (19:02)
○ 视频:8-4 组合问题 Combinations (14:27)
○ 视频:8-5 回溯法解决组合问题的优化 (17:29)
○ 视频:8-6 二维平面上的回溯法 Word Search (21:45)
○ 视频:8-7 floodfill算法,一类经典问题 Number of Islands- (21:27)
○ 视频:8-8 回溯法是经典人工智能的基础 N Queens (25:17)
第9章 动态规划基础10 节 | 214分钟
很多同学听到“动态规划”的名称可能会望而生畏,觉得动态规划的问题都很复杂。但其实,动态规划本质依然是递归算法,只不过是满足特定条件的递归算法。在这一章里,我们就来逐步解开动态规划的神秘面纱
收起列表
○ 视频:9-1 什么是动态规划 (20:27)
○ 视频:9-2 第一个动态规划问题 Climbing Stairs (14:02)
○ 视频:9-3 发现重叠子问题 Integer Break (25:10)
○ 视频:9-4 状态的定义和状态转移 House Robber (27:19)
○ 视频:9-5 0-1背包问题 (32:37)
○ 视频:9-6 0-1背包问题的优化和变种 (20:18)
○ 视频:9-7 面试中的0-1背包问题 Partition Equal Subset Sum (27:34)
○ 视频:9-8 LIS问题 Longest Increasing Subsequence (25:12)
○ 视频:9-9 LCS,最短路,求动态规划的具体解以及更多 (21:00)
○ 作业:9-10 动态规划的经典问题
第10章 贪心算法3 节 | 46分钟
通常同学们可能会认为贪心算法比较简单。确实,通常贪心算法的实现非常容易,但是,一个问题是否能够使用贪心算法,是一定要小心的。我们在这一章来看一看,贪心算法可能会有哪些坑。
收起列表
○ 视频:10-1 贪心基础 Assign Cookies (12:12)
○ 视频:10-2 贪心算法与动态规划的关系 Non-overlapping Intervals (17:58)
○ 视频:10-3 贪心选择性质的证明 (15:19)
第11章 课程结语2 节 | 3分钟
看完整个课程,我不能保证所有的同学都能百分百地对每一个算法面试问题应答自如,但认真学习的同学对大部分问题都应该已经有了一个合理的思维路径。在最后一章,我们再来简单地总结一下,并祝每一位同学都能找到自己喜欢的工作,大展宏图:)…
收起列表
○ 视频:11-1 结语 (02:45)
○ 作业:11-2 更多经典面试问题

参考5: - DAG & DP高级教程

● 概要:将四大数据结构:线、树、图、集统一于有向无环图(DAG)、四大算法深搜、广搜、动规、减治统一于动态规划(DP)
● 课程:https://coding.imooc.com/class/827.html
题目列表(47道)
09 斐波那契数
144 二叉树的前序遍历
94 二叉树的中序遍历
145 二叉树的后序遍历
912 排序数组
114 二叉树展开为链表
207 课程表
104 二叉树的最大深度
704 二分查找
162 寻找峰值
153 寻找旋转排序数组中的最小值
78 子集
46 全排列
47 全排列 II
90 子集 II
40 组合总和 II
491 递增子序列
93 复原 IP 地址
279 完全平方数
198 打家劫舍
1359 有效的快递序列数目
1510 石子游戏 IV
72 编辑距离
132 分割回文串 II

题目记录与总结

leetcode(主号登陆)每一道题总结进 https://github.com/Elylicery/LeetCode-Solutions

http://www.xdnf.cn/news/19488.html

相关文章:

  • 15693协议ICODE SLI 系列标签应用场景说明及读、写、密钥认证操作Qt c++源码,支持统信、麒麟等国产Linux系统
  • 浪潮科技Java开发面试题及参考答案(120道题-上)
  • 利用本地电脑上的MobaXterm连接虚拟机上的Ubuntu
  • 基于SpringBoot音乐翻唱平台
  • Linux Shell 脚本中括号类型及用途
  • three.js+WebGL踩坑经验合集(10.2):镜像问题又一坑——THREE.InstancedMesh的正反面向光问题
  • UART-TCP双向桥接服务
  • 【51单片机三路抢答器定时器1工作1外部中断1】2022-11-24
  • 参数检验vs非参数检验
  • docker 网络配置
  • 【高级】系统架构师 | 2025年上半年综合真题
  • 硬件开发_基于Zigee组网的果园养殖监控系统
  • 56_基于深度学习的X光安检危险物品检测系统(yolo11、yolov8、yolov5+UI界面+Python项目源码+模型+标注好的数据集)
  • aws上创建jenkins
  • 力扣 23 912题(堆)
  • JAVA 面试宝典02
  • 工业飞拍技术:高速生产线的 “动态抓拍神器”,到底牛在哪?
  • 20250829的学习笔记
  • 基于GCN图神经网络的光伏功率预测Matlab代码
  • Spark实现推荐系统中的相似度算法
  • Proteus 仿真 + STM32CubeMX 协同开发全教程:从配置到仿真一步到位
  • 盟接之桥说制造:守正出奇:在能力圈内稳健前行,以需求导向赢得市场
  • 基于51单片机220V交流电流检测系统过流阈值报警设计
  • 增强现实—Gated-attention architectures for task-oriented language grounding
  • 从零开始的python学习(九)P134+P135+P136+P137+P138+P139+P140
  • 【LeetCode热题100道笔记+动画】颜色分类
  • 【面试场景题】如何快速判断几十亿个数中是否存在某个数
  • python-pptx 库(最常用,适合生成/修改 PPT 文件)
  • 深入解析quiche开源项目:从QUIC协议到云原生实践
  • 大模型微调与LoRA/QLoRA方法解析