- 博客(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 186
原创 try-with-resource
try-with-resourcetry-with-resource注意事项try-with-resourceInputStream实现了Closable接口,就不用显式地写finally然后in.close()啦~try(InputStream in = new InputStream(...);){ ...}【原理】反编译后发现其实是自动生成的finally块然后调用close()方法~【异常屏蔽】如果在finally中也发生了异常,我们看到的是最后一个抛出的异常,而前面的异常被忽略了。
2021-08-24 19:41:10 123
原创 枚举类实现单例
枚举类实现单例前言正文前言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 103
转载 实现一个简易的任务队列
/**实现一个简易任务队列,要求如下:*取消的是前面的任务,前面有任务就cancel,没有任务就notask。比如:SimpleQueue queue = new SimpleQueue ();queue .cancel(); // 输出notaskqueue .task().cancel(); // 输出cancelqueue .task().sleep(1).task().cancel(); // 输出tasktask()方法,执行一次任务,打印"task";can
2021-07-29 15:10:21 339
原创 链表各种排序
链表排序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 796 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 106 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人