Echo Blog

Words and ideas can change the world.

回溯算法框架

labuladong 博客学习笔记

从整体到细节,自顶向下,从抽象到具体的框架思维是通用的,不只是学习数据结构和算法,学习其他任何知识都是高效的。 回溯算法的要素 回溯算法跟动态规划算法有些类似,动态规划里强调的是状态,选择和base case,而回溯法里强调的是路径,选择列表和结束条件。 解决一个回溯问题,其实就是一个决策树的遍历过程,只需考虑以下三个问题: 路径:也就是已经做出的选择 选择列表:即...

动态规划框架

labuladong 博客学习笔记

从整体到细节,自顶向下,从抽象到具体的框架思维是通用的,不只是学习数据结构和算法,学习其他任何知识都是高效的。 动态规划问题的特点 求解动态规划的核心问题是穷举,但动态规划问题一般都存在重叠子问题,而一般暴力穷举的效率都是极低的,因此需要 DP table (存储一些中间结果)来聪明地穷举,就可以避免不必要的计算。 另一方面,动态规划问题一定具备最优子结构,来保证通过子问题得到...

KNN 算法

面试知识点笔记

面试前整理的一些自己不熟悉的知识点,好想拥有一个硬盘一样的脑袋,可以不忘掉的那种。 逻辑回归 手推逻辑回归: Logit 函数写模型 极大似然求梯度 学习率更新参数 KNN 算法 KNN 算法属于懒学习方法,基本上不学习,导致预测的速度比逻辑回归等算法慢。 KNN 算法三要素: k 值选取:交叉验证选取,过小会引起过拟合,过大则模型太简单。 距离...

概率分布、相对熵

面试知识点笔记

面试前整理的一些自己不熟悉的知识点,好想拥有一个硬盘一样的脑袋,可以不忘掉的那种。 1 几何分布 在伯努利实验中,记每次试验中事件 A 发生的概率为 p,试验进行到事件 A 出现停止,此时所进行的试验次数为 X,其分布就是几何分布。 该分布的期望为 $1/p$,方差为 $\frac{1-p}{p^2}$。 2 C 语言结构体大小 结构体内偏移规则: 每个成员的偏移量...

算法之回溯、动态规划、贪心、位运算

剑指 offer 学习笔记

算法与数据操作也是面试时经常问到的题目。很多算法都有递归和循环的实现,同时查找和排序也是很基础的内容,除此之外,回溯法、贪心法、动态规划等针对一类问题的算法都是非常重要的。 回溯法 回溯法可以看作蛮力法的升级版,它从解决问题每一步的所有可能选项里系统地选出一个可行的解决方案。 回溯法非常适合由多个步骤组成的问题,并且每个步骤都有多个选项。当我们在某一步选择了其中一个选项时,就进...

算法之递归、循环、查找

剑指 offer 学习笔记

算法与数据操作也是面试时经常问到的题目。很多算法都有递归和循环的实现,同时查找和排序也是很基础的内容,除此之外,回溯法、贪心法、动态规划等针对一类问题的算法都是非常重要的。 1 递归与循环 通常基于递归的代码比较简洁,也比较容易实现,但性能却不如基于循环的实现方法,因为递归时会存在额外的函数调用,内存栈操作以及重复计算,甚至有时会出现调用栈溢出的情况。 但是如果没有特殊要求,可...

算法之排序

剑指 offer 学习笔记

算法与数据操作也是面试时经常问到的题目。很多算法都有递归和循环的实现,同时查找和排序也是很基础的内容,除此之外,回溯法、贪心法、动态规划等针对一类问题的算法都是非常重要的。 1 排序 插入排序、冒泡排序、归并排序、快速排序的特点及分析。 1.1 插入排序 插入排序的思想是通过构建有序序列,对未排序的序列,在已排序的序列中从后往前扫描,找到对应的位置并插入。 其实就像打扑克牌...

数据结构之栈与队列

剑指 offer 学习笔记

作为一名程序猿,想在面试的时候游刃有余,首先要熟练掌握数组、字符串、链表、树、栈、队列这几种基础的数据结构。 1 栈与队列 栈是一个非常常见的数据结构,其特点是先进后出,操作系统在函数调用便会使用栈结构。 栈是一个不考虑排序的数据结构,因此查找最大最小元素的时间复杂度为 O(n),若想要在 O(1) 时间内得到栈的最大最小值,则需要对栈做特殊的设计。 与栈不同的是,队列是先进...

数据结构之树

剑指 offer 学习笔记

作为一名程序猿,想在面试的时候游刃有余,首先要熟练掌握数组、字符串、链表、树、栈、队列这几种基础的数据结构。 1 树 树的结构:除根节点外每个节点只有一个父节点,根节点没有父节点;除叶节点外每个节点只有一个或多个子节点,叶节点没有子节点。父节点和子节点用指针链接。 树的遍历:前序遍历、中序遍历、后序遍历,其递归和循环实现都要熟练掌握。此外还有广度优先遍历。 二叉树的特例: ...

考研作息时间表

奥利给!

这是我给宝贝老婆规划的考研期间的作息表(非学校上课时段)。 时段 时间 事项安排 上午 8:30 - 9:00 起床、洗漱 9:00 - 9:30 背英语单词/语法/句子积累 ...