摘要: 书上和各种资料对B树的定义有很多 下面是一种B树节点的定义和插入实现(java) import java.util.LinkedList; public class BTreeNode { /** * B-树阶数 */ int m; /** * 节点关键字列表 */ LinkedList<Integ 阅读全文
posted @ 2019-12-05 15:32 小小小小的我 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 判断一棵树是不是另一棵树的子结构其实逻辑还是比较清晰的,假设判断A是是不是B的子结构。显然为真的条件是 以B树中任意一个节点为根的树和A可以进行匹配就为真。 public static boolean dfs(TreeNode root1, TreeNode root2) { if (root1 ! 阅读全文
posted @ 2019-11-24 22:18 小小小小的我 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 这里所求的最长公共子序列,指的是最长公共子序列的长度。 基本思路和求最长公共子串差不多 只是在一处有差别,代码也比较简单。 public static int lcs(String s1, String s2) { int len1 = s1.length(); int len2 = s2.leng 阅读全文
posted @ 2019-11-15 22:57 小小小小的我 阅读(175) 评论(0) 推荐(0) 编辑
摘要: public static String lcStr(String s1, String s2) { int len1 = s1.length(); int len2 = s2.length(); int max = 0; //flag 表示最长功能子串起始位置 int flag = -1; if 阅读全文
posted @ 2019-11-15 16:09 小小小小的我 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 数据结构中的堆是一颗完全二叉树,一般由数组实现(也有优先队列),这篇主要讲一下用数组实现的堆。 1: 对一个普通数组进行堆排序(尤其是原地排序,不能占用额外空间的)其实这样的堆排序我很难说他实现了堆,它只是对普通数组使用了堆的特性 (并没有堆的数据结构的实现) 这种一般要经过两个步骤: 1 建堆 把 阅读全文
posted @ 2019-11-15 14:25 小小小小的我 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 位图(bitmap)的原理是用一个位来表示一个数字(准确说是用数组下标和一个位来表示)。 java中一个int类型占4Byte,32字节。如果我们使用位图来存储数据。那么一个int类型就可以存储32个数据。 //假设我们要存储20亿整数 private static final int N = 20 阅读全文
posted @ 2019-11-11 17:06 小小小小的我 阅读(1081) 评论(0) 推荐(0) 编辑
摘要: 我在最开始遇到这个问题时是很疑惑地,因为我只重写了equals但是并没有出现什么问题。其实首先要明白一点的是重写equals时重写hashcode 并不是java语法层面的问题。而是一种通用约定。因为java中基于散列的集合实现了这个约定。所以当你的类在集合这样的数据结构中使用,也需要遵守这种约定。 阅读全文
posted @ 2019-11-11 13:21 小小小小的我 阅读(481) 评论(0) 推荐(0) 编辑
摘要: 这道题其实本身没有什么难度,就是层序遍历保留每一层最后一个值。但是以什么方式来区分每一层还是有不同思路的。 public static List<Integer> rightSideView(TreeNode root) { if (root == null) { return new ArrayL 阅读全文
posted @ 2019-11-10 10:50 小小小小的我 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 有两位极客玩家参与了一场「二叉树着色」的游戏。游戏中,给出二叉树的根节点 root,树上总共有 n 个节点,且 n 为奇数,其中每个节点上的值从 1 到 n 各不相同。 游戏从「一号」玩家开始(「一号」玩家为红色,「二号」玩家为蓝色),最开始时, 「一号」玩家从 [1, n] 中取一个值 x(1 < 阅读全文
posted @ 2019-11-08 14:39 小小小小的我 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下: 二叉树的根是数组中的最大元素。左子树是通过数组中最大值左边部分构造出的最大二叉树。右子树是通过数组中最大值右边部分构造出的最大二叉树。通过给定的数组构建最大二叉树,并且输出这个树的根节点。 这道题其实有点像有先序遍历和中序遍历构 阅读全文
posted @ 2019-11-08 13:56 小小小小的我 阅读(111) 评论(0) 推荐(0) 编辑