- 博客(6)
- 收藏
- 关注
原创 区间计算的数据结构
前言: 前缀和:区间查询O(1),修改O(N); 线段树:区间查询O(lgN),修改O(lgN); 差分数组:区间修改O(1),但是在查询数组中某个位置的数时,就要根据差分数组从前往后递推求值。 目录前言:一、线段树二、差分数组 一、线段树 自上而下递归的思想。 /** * 线段树 */ public class SegementTreePractice2 { private static Segement root; class Segement { // 线段表示的区
2021-08-31 18:45:27
362
原创 try-with-resource
try-with-resourcetry-with-resource注意事项 try-with-resource InputStream实现了Closable接口,就不用显式地写finally然后in.close()啦~ try(InputStream in = new InputStream(...);){ ... } 【原理】反编译后发现其实是自动生成的finally块然后调用close()方法~ 【异常屏蔽】如果在finally中也发生了异常,我们看到的是最后一个抛出的异常,而前面的异常被忽略了。
2021-08-24 19:41:10
194
原创 枚举类实现单例
枚举类实现单例前言正文 前言 public Enum Season{ // 其实每一个定义都是该枚举的实例!如下 SPRINT,SUMMER,AUTUMN,WINTER } // 反编译后发现是一个继承了Enum的final类(没有继承Object),故枚举类不可继承。 public final class Season extends Enum<Season>{ public static final Season SPRINT; public static final Season
2021-08-13 00:32:20
187
转载 实现一个简易的任务队列
/** 实现一个简易任务队列,要求如下: *取消的是前面的任务,前面有任务就cancel,没有任务就notask。 比如: SimpleQueue queue = new SimpleQueue (); queue .cancel(); // 输出notask queue .task().cancel(); // 输出cancel queue .task().sleep(1).task().cancel(); // 输出task task()方法,执行一次任务,打印"task"; can
2021-07-29 15:10:21
456
原创 链表各种排序
链表排序1、插入排序2、归并排序2、归并排序23、快排 1、插入排序 与数组插入排序不同,每次从头开始找插入位置。 class Solution { public ListNode insertionSortList(ListNode head) { if (head == null || head.next == null) return head; // 从前往后的插入排序 ListNode dummpy = new ListNode(0);
2021-07-24 17:54:17
965
1
原创 树的算法题
树的算法题1、分层打印2、N叉树的前序遍历3、N叉树的后序遍历 1、分层打印 维护当前层的节点数curLevelSize、下一层的节点数nextLevelSize。 N叉树的层序遍历 ,leetcode429; class Solution { public List<List<Integer>> levelOrder(Node root) { List<List<Integer>> result = new Array
2021-07-20 22:58:10
236
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅