齐天大圣

动态规划

动态规划 什么是动态规划? 动态规划和递归? 斐波那契数列,递归解法是 顶向下 进行 递归 求解;更常见的动态规划代码是 自底向上 进行 递推 求解 自顶向下 是从上向下延伸,都是从一个规模较大的原问题比如说 f(20),向下逐渐分解规模,直到 f(1) 和 f(2) 这两个 base case,然后逐层返回答案,这就叫「自顶向下」。 自底向上 我们直接从最底下...

常见的逻辑题

找个位数 一个数对 10 取余,得到的就是该数的个位数 一个数对 10 整除,就是减少数的大小 水仙花数 题目:水仙花数也被称为超完全数字不变数、自恋数、自幂数、阿姆斯特朗数,它是一个 3 位数,该数字每个位上数字的立方之和正好等于它本身,例如:1^3 + 5^3+ 3^3=153。思路: 需要找到个位、十位和百位上的数字; 个位:对 10 取余,得到个位数的数...

二叉树基础 什么是二叉树? 二叉树(Binary Tree)是包含 n 个节点的有限集合,该集合或者为空集(此时,二叉树称为空树),或者由一个根节点和两棵互不相交的、分别称为根节点的左子树和右子树的二叉树组成。 二叉树种类 完全二叉树 叶节点只能出现在最下层和次下层,并且最下面一层的结点都集中在该层最左边的若干位置的二叉树。完全二叉树特点: 只允许最后一层有空缺节点且空缺节...

堆基础 堆定义 堆是一颗完全二叉树 堆中某个节点的值总是不大于(小根堆)或不小于其父节点(大根堆)的值 用数组来实现 大根堆、小根堆 大根堆 每个节点的值都大于等于子节点的值;最大值在根节点 小根堆 每个节点的值都小于等于子节点的值;最小值在根节点 堆排序 构建堆,取堆顶为最小 (最大) 将剩下的元素重新构建一个堆,取堆顶,一直到元素取完...