
算法班笔记
文章平均质量分 93
fwu11
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
算法班笔记 第五章 二叉树和基于树的DFS
第五章 二叉树和基于树的DFS在这一章节的学习中,我们将要学习一个数据结构——二叉树(Binary Tree),和基于二叉树上的搜索算法。在二叉树的搜索中,我们主要使用了分治法(Divide Conquer)来解决大部分的问题。之所以大部分二叉树的问题可以使用分治法,是因为二叉树这种数据结构,是一个天然就帮你做好了分治法中“分”这个步骤的结构。二叉树上的遍历法定义遍历(Trav...转载 2018-09-23 15:07:43 · 835 阅读 · 0 评论 -
算法班笔记 第九章 数据结构:区间、数组、矩阵和树状数组
第九章 数据结构:区间、数组、矩阵和树状数组子数组与前缀和SubarryPrefixSum[i] = A[0] + A[1] + ... + A[i-1]PrefixSum[0] = 0;构造花费 O(n) 时间,O(n) 空间Sum(i to j) = prefixsum[j+1] - prefixsum[i];Maximum subarray Subarray ...转载 2018-10-20 14:20:28 · 361 阅读 · 0 评论 -
算法班笔记 第八章 数据结构:栈,队列,哈希表,堆
第八章 数据结构:栈,队列,哈希表,堆栈 Stack我们在前面的二叉树的学习中,已经学习了如何使用 Stack 来进行非递归的二叉树遍历。这里我们来看看栈在面试中的其他一些考点和考题:如果自己实现一个栈? 如何用两个队列实现一个栈? 用一个数组如何实现三个栈?如何实现一个栈?什么是栈(Stack)?栈(stack)是一种采用后进先出(LIFO,last in fi...转载 2018-10-18 14:52:47 · 495 阅读 · 0 评论 -
算法班笔记 第二章 二分与 LogN 算法
第二章 二分与 LogN 算法算法复杂度理论时间复杂度是面试中必问的问题。学好时间复杂度,有如下的帮助:面试官会问你的算法时间复杂度是什么 当面试官说,有没有更好的方法时,你知道朝什么样的复杂度优化 利用时间复杂度倒推算法是面试常用技巧。如 O(logN)的算法几乎可以确定是二分法。一个算法的运行时间与其所要执行的语句的数量成正比,而所要执行的语句与问题规模正相关。因此算法的时间...转载 2018-09-23 07:12:17 · 1343 阅读 · 0 评论 -
算法班笔记 第三章 双指针算法
第三章 双指针算法相向双指针 相向双指针,指的是在算法的一开始,两根指针分别位于数组/字符串的两端,并相向行走。如我们在小学的时候经常遇到的问题:小明和小红分别在铁轨A站和B站相向而行,小红的速度为 1m/s, 小明的速度为 2m/s,A站和B站相距 1km。请问 ... 他们什么时候被火车撞死?一个典型的相向双指针问题就是翻转字符串的问题。在第二节课中我们学到的三步翻转法,...转载 2018-09-23 07:11:47 · 1769 阅读 · 0 评论 -
算法班笔记 第四章 BFS 与拓扑排序
第四章 BFS与拓扑排序什么是队列(Queue)队列(queue)是一种采用先进先出(FIFO,first in first out)策略的抽象数据结构。比如生活中排队,总是按照先来的先服务,后来的后服务。队列在数据结构中举足轻重,其在算法中应用广泛,最常用的就是在宽度优先搜索(BFS)中,记录待扩展的节点。队列内部存储元素的方式,一般有两种,数组(array)和链表(linked l...转载 2018-09-23 09:49:27 · 841 阅读 · 0 评论 -
算法强化班小结
Chapter 1 Cracking the Follow Up Interview Questions同向双指针模板O(n)j = 0for i in range(n): //挪动 i 的时候,看看 j 最多挪动到哪儿。 //j 代表的是 subarray 右断点的 index + 1 的位置。因此 j - i 是 Subarray 的长度 while j &...原创 2018-11-17 17:54:26 · 569 阅读 · 0 评论 -
算法班笔记 第七章 基于排列、图的DFS
第七章 基于排列、图的DFS全排列问题如何使用深度优先搜索来实现?和全子集问题的异同在哪儿? 全排列问题的 Follow up: Permutation II。如何去重? 如何求一个排列的下一个排列? 如何求一个排列是第几个排列?如何求下一个排列问题描述给定一个若干整数的排列,给出按整数大小进行字典序从小到大排序后的下一个排列。若没有下一个排列,则输出字典序最小的序列。例如1...转载 2018-09-26 06:05:36 · 297 阅读 · 0 评论 -
算法班笔记 第六章 基于组合的DFS
第六章 基于组合的DFS在非二叉树上的深度优先搜索(Depth-first Search)中,90%的问题,不是求组合(Combination)就是求排列(Permutation)。特别是组合类的深度优先搜索的问题特别的多。通过全子集问题 Subsets 了解组合类搜索的两种形式 通过全子集问题 II 了解如何在搜索中去重 使用非递归的方法实现全子集问题全子集问题 题目的意思就是...转载 2018-09-25 15:16:13 · 511 阅读 · 0 评论 -
算法班小结
Chapter 2: Binary Search & LogN Algorithm时间复杂度分析O(1) O(logn) 二分法 O(sqrt n) 分解质因数 O(n) 高频 O(nlogn) 排序 O(n^2) 数组,枚举,动规 O(n^3) 数组,枚举,动规 O(2^n) 组合有关搜索 O(...原创 2018-10-21 15:17:12 · 793 阅读 · 0 评论 -
背包问题笔记
背包 Knapsack0-1背包问题有 N 种物品,一个容量为 V 的背包,第 i 件物品的体积为 cap[i],价值为 val[i],求在不超过背包容量限制的情况下所能获得的最大物品价值和为多少?因为在这个问题中,一件物品要么不选,要么选,正好对应于 0-1 两个状态,所以我们一般把形如这样的背包问题称作 0-1 背包问题。状态:定义状态:knapsack[i][j]代表...原创 2019-06-20 12:15:21 · 166 阅读 · 0 评论