随笔分类 - 算法
摘要:二叉树遍历: 前序遍历:根节点->左儿子->右儿子 中序遍历:左儿子->根节点->右儿子 后序遍历:左儿子->右儿子->根节点 例如给定一个树A 前序遍历:[1,2,4,5,3,6] 中序遍历:[4,2,5,1,6,3] 后序遍历:[4,5,2,6,3,1] 定义节点: class TreeNode
阅读全文
摘要:BST:二叉搜索树,所有节点的左子树都小于右,子树。读和写的复杂度都是O(logN)。 缺点:当是顺序情况下,复杂度是O(N) AVL:平衡二叉树,左子树和右子树深度差小于等于1,是BST的一种。读和写都是O(logN)而且最坏情况下也是O(logN)。相对于BST是一种很好的优化。 红黑树: ro
阅读全文
摘要:LeetCode 98.验证二叉搜索树 给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 链接:https://leetcode-cn.com/
阅读全文
摘要:HashMap是Map接口的实现,HashSet是Set接口的实现。 Set接口是Collection接口的子接口。而Map和Collection没关系,所以Map不是真正意义上的集合。 Set——不能包含重复元素的集合。 Map——用来映射键值的对象,允许用键来查找值,key和value是一对一的
阅读全文
摘要:现有N个大理石,每个大理石写了一个非负整数。首先把各数从小到大排序,然后回答Q个问题。每个问题是否有一个大理石写着某个整数x,如果是,还要回答哪个大理石上写着x。排序后的大理石从左到右编号为1~N。(在样例中,为了节约篇幅,所有大理石上的数合并到一行,所有问题也合并到一行。) 样例输入: 4 1 2
阅读全文
摘要:蛇形填数: 在n*n的方阵里填入1,2,...,n*n,要求填成蛇形。例如,n=4的方阵为上面的方阵中,多余的空格只是为了便于观察规律,不必严格输出。n<=8。 注意: 在多数情况下,最好在做一件事之前检查是不是可以做,而不要做完再后悔。 首先外层while循环判断条件为tot的值小于蛇形填数走到最
阅读全文
摘要:斐波拉契数列总结 问题提出: 分别用递归和非递归代码计算斐波拉契数列;比较效率,分析效率差异可能产生的原因。 #include<stdio.h> #include<stdlib.h> //递归实现 int list(int n){ if(n==0||n==1) return n; else if(n
阅读全文

浙公网安备 33010602011771号