摘要: import java.util.TreeMap; class Trie { class Node{ boolean isWord; TreeMap<Character, Node> next; public Node(){ next = new TreeMap<>(); isWord = fals 阅读全文
posted @ 2021-11-10 20:16 振袖秋枫问红叶 阅读(24) 评论(0) 推荐(0)
摘要: 对于有一类问题,我们关心的是一个线段(区间),比如区间染色、区间查询 对于一个给定的区间,更新区间中一个元素的值或者查询区间中的最大最小值或者总和,使用线段树更快,又称区间树 线段树是一种平衡二叉树(最大深度和最小深度差值<=1,堆也是平衡二叉树),其节点存储的是一个区间的信息,比如该区间的总和,根 阅读全文
posted @ 2021-11-10 15:45 振袖秋枫问红叶 阅读(90) 评论(0) 推荐(0)
摘要: import java.util.TreeMap; class MyCalendar { TreeMap<Integer, Integer> treeMap; public MyCalendar() { treeMap = new TreeMap(); } public boolean book(i 阅读全文
posted @ 2021-11-10 15:41 振袖秋枫问红叶 阅读(57) 评论(0) 推荐(0)
摘要: class NumArray { SegmentTree segmentTree; public NumArray(int[] nums) { segmentTree = new SegmentTree(nums); } public void update(int index, int val) 阅读全文
posted @ 2021-11-10 14:27 振袖秋枫问红叶 阅读(29) 评论(0) 推荐(0)
摘要: /** * 对于不可变数组,用线段树反而更麻烦 */ class NumArray { int[] sum; public NumArray(int[] nums) { /** * 提前保存前n个元素的和,sum[i]保存的是前i个元素,不包括自身 * 区间和就是左右边界前缀和的差 */ sum = 阅读全文
posted @ 2021-11-10 13:52 振袖秋枫问红叶 阅读(30) 评论(0) 推荐(0)