TA的每日心情 | 开心 2024-9-19 21:14 |
---|
签到天数: 757 天 [LV.10]以坛为家III
管理员
- 积分
- 1312455
|
资源详情
【课程内容】
第1章算法面试到底是什么鬼?
一提起算法面试,很多同学就会心有余悸。可其实,大多数企业的算法面试,并没有那么可怕。并不是一定要啃完整本《算法导论》,才能玩儿转算法面试;也并不是只有ACM参赛选手,才能笑傲算法面试。恰恰相反,大多数算法面试关注的算法思维,其实很基础。在这一章,和大家聊一聊,算法面试,到底是什么鬼?...
1-1算法面试不仅仅是正确的回答问题
1-2算法面试只是面试的一部分
1-3如何准备算法面试
1-4如何回答算法面试问题
第2章面试中的复杂度分析
很多同学一提起复杂度分析就头疼,马上想起了《算法导论》中复杂的数学推导。但其实在一般的企业面试中,对复杂度的分析要求并没有那么高,但也是绕不过去的坎儿。在这一章,和大家介绍一下,面试中需要掌握的复杂度分析。...
2-1究竟什么是大O(BigO)
2-2对数据规模有一个概念
2-3简单的复杂度分析
2-4亲自试验自己算法的时间复杂度
2-5递归算法的复杂度分析
2-6均摊时间复杂度分析(AmortizedTimeAnalysis)
2-7避免复杂度的震荡
第3章数组中的问题其实最常见
面试中的算法问题,有很多并不需要复杂的数据结构支撑。就是用数组,就能考察出很多东西了。其实,经典的排序问题,二分搜索等等问题,就是在数组这种最基础的结构中处理问题的。在这一章中,我们学习常见的数组中处理问题的方法。...
3-1从二分查找法看如何写出正确的程序
3-2改变变量定义,依然可以写出正确的算法
3-3在LeetCode上解决第一个问题MoveZeros
3-4即使简单的问题,也有很多优化的思路
3-5三路快排partition思路的应用SortColor
3-6对撞指针TwoSumII-InputArrayisSorted
3-7滑动窗口MinimumSizeSubarraySum
3-8在滑动窗口中做记录LongestSubstringWithoutRepeatingCharacters
第4章查找表相关问题
查找,是使用计算机处理问题时的一个最基本的任务,因此也是面试中非常常见的一类问题。很多算法问题的本质,就是要能够高效查找。学会使用系统库中的map和set,就已经成功了一半。
4-1set的使用IntersectionofTwoArrays
4-2map的使用IntersectionofTwoArraysII
4-3set和map不同底层实现的区别
4-4使用查找表的经典问题TwoSum
4-5灵活选择键值4SumII
4-6灵活选择键值NumberofBoomerangs
4-7查找表和滑动窗口ContainDuplicateII
4-8二分搜索树底层实现的顺序忄生ContainDuplicateIII
第5章在链表中穿针引线
链表是一种特殊的线忄生结构,由于不能像数组一样进行随机的访问,所以和链表相关的问题有他自身的特点。我将之称为穿针引线。我们在这一章,就来看一看,如何在链表中穿针引线。
5-1链表,在节点间穿针引线ReverseLinkedList
5-2测试你的链表程序
5-3设立链表的虚拟头结点RemoveLinkedListElements
5-4复杂的穿针引线SwapNodesinPairs
5-5不仅仅是穿针引线DeleteNodeinaLinkedList
5-6链表与双指针RemoveNthNodeFormEndofList
第6章栈,队列,优先队列
栈和队列虽然是简单的数据结构,但是使用这些简单的数据结构所解决的算法问题不一定简单。在这一章里,我们将来探索,和栈与队列相关的算法问题。
6-1栈的基础应用ValidParentheses
6-2栈和递归的紧密关系BinaryTreePreorder,InorderandPostorderTrA危ersal
6-3运用栈模拟递归
6-4队列的典型应用BinaryTreeLevelOrderTrA危ersal
6-5BFS和图的最短路径PerfectSquares
6-6优先队列
6-7优先队列相关的算法问题TopKFrequentElements
第7章二叉树和递归
递归,是使用计算机解决问题的一种重要的思考方式。而二叉树由于其天然的递归结构,使得基于二叉树的算法,均拥有着递归忄生质。使用二叉树,是研究学习递归算法的最佳入门方式。在这一章里,我们就来看一看二叉树中的递归算法。...
7-1二叉树天然的递归结构
7-2一个简单的二叉树问题引发的血案InvertBinaryTree
7-3注意递归的终止条件PathSum
7-4定义递归问题BinaryTreePath
7-5稍复杂的递归逻辑PathSumIII
7-6二分搜索树中的问题LowestCommonAncestorofaBinarySearchTree
第8章递归和回溯法
回溯法是解决很多算法问题的常见思想,甚至可以说是传统人工智能的基础方法。其本质依然是使用递归的方法在树形空间中寻找解。在这一章,我们来具体看一下将递归这种技术使用在非二叉树的结构中,从而认识回溯这一基础算法思想。...
8-1树形问题LetterCombinationsofaPhoneNumber
8-2什么是回溯
8-3排列问题Permutations
8-4组合问题Combinations
8-5回溯法解决组合问题的优化
8-6二维平面上的回溯法WordSearch
8-7floodfill算法,一类经典问题NumberofIslands-
8-8回溯法是经典人工智能的基础NQueens
第9章动态规划基础
很多同学听到“动态规划”的名称可能会望而生畏,觉得动态规划的问题都很复杂。但其实,动态规划本质依然是递归算法,只不过是满足特定条件的递归算法。在这一章里,我们就来逐步解开动态规划的神秘面纱
9-1什么是动态规划
9-2第一个动态规划问题ClimbingStairs
9-3发现重叠子问题IntegerBreak
9-4状态的定义和状态转移HouseRobber
9-50-1背包问题
9-60-1背包问题的优化和变种
9-7面试中的0-1背包问题PartitionEqualSubsetSum
9-8LIS问题LongestIncreasingSubsequence
9-9LCS,最短路,求动态规划的具体解以及更多
第10章贪心算法
通常同学们可能会认为贪心算法比较简单。确实,通常贪心算法的实现非常容易,但是,一个问题是否能够使用贪心算法,是一定要小心的。我们在这一章来看一看,贪心算法可能会有哪些坑。
|
|