首页
学习
活动
专区
工具
TVP
发布

赵俊的Java专栏

专栏作者
174
文章
223527
阅读量
44
订阅数
Java 多线程设计模式 —— Single Threaded Execution
Single Threaded Execution 有时也会被称之为 临界区。表示 临界区 内的代码同一时间内只允许一个线程执行,这个模式是并发编程的基础,对应 Java 中也就是同步代码块 synchronized,或其他显式锁 lock。
一份执着✘
2020-10-09
6130
LeetCode 783 Minimum Distance Between BST Nodes
这道题很像: Minimum Absolute Difference in BST, 解法甚至可以通用.
一份执着✘
2019-12-30
4090
LeetCode 606 Construct String from Binary Tree
给予一颗二叉树,根据前序遍历构建一个字符串, 不过需要在每个元素和他的子元素的外层用 () 包住, 并且需要你不会影响字符串和原始二叉树之间一一对应关系的空括号对.
一份执着✘
2019-12-30
4300
LeetCode 108 Convert Sorted Array to Binary Search Tree
给予一个从小到大的数组, 构建一颗二叉平衡树, 即每个节点的两个子树的深度不能相差超过 1.
一份执着✘
2019-12-30
3520
LeetCode 429 N-ary Tree Level Order Traversal
该题的要点是保持左右顺序,和记录当前层数,保持顺序的意思是指要将树某一层的数据从左至右放置到数组中,记录层数就更不用说了,每一层对应一个数组,要能区分数据的层级。
一份执着✘
2019-12-30
4320
LeetCode 637 Average of Levels in Binary Tree
题意 给予一颗二叉树,返回其每层节点的平均值. 例 : 给予树: 3 / \ 9 20 / \ 15 7 返回: [3, 14.5, 11] 解法 采用广度优先遍历, 遍历每一行的数据, 相加并除以每一层的个数即可. /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode righ
一份执着✘
2019-12-30
2780
LeetCode 872 Leaf-Similar Trees
本题主要考察的是对树的遍历,遍历获取所有叶子节点,并比较是否一致即可。下面给出递归和非递归两种实现方式。
一份执着✘
2019-12-30
3600
MySQL 索引
数据库的索引是一个要点, 无论是面试还是在工作中, 这个知识点都很常会用到, 你可能只是用过索引, 知道加了索引可以提高查询的性能, 但不知道为什么这样, 今天我们一起来详细了解下吧.
一份执着✘
2019-12-30
2.8K0
LeetCode 590 N-ary Tree Postorder Traversal
题意 给定一颗 N 叉树 的根节点,返回后序遍历后的数组. 例 : 给予树: 1 / | \ 3 2 4 / \ 5 6 将其后序遍历返回: [5,6,3,2,4,1]. 解法 和二叉树的中序遍历差不多,需要注意处理好子节点的顺序即可。 非递归解法: /* // Definition for a Node. class Node { public int val; public List<Node> childre
一份执着✘
2019-12-30
4480
LeetCode 1008 Construct Binary Search Tree from Preorder Traversal
题意 给定一个前序遍历的数组,还原 二叉搜索树。 数组中不存在重复值 例 : 输入:[8,5,1,7,10,12] 输出: 8 / \ 5 10 / \ \ 1 7 12 解法 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNo
一份执着✘
2019-12-30
4750
LeetCode 654 Maximum Binary Tree
题意 给定一个整数数组,生成一棵 最大二叉树,规则是数组中的最大值为根节点,然后分割出最大值左侧的子数组再构造 最大二叉树,最大值的右侧也构造成 最大二叉树。 例 : 输入: [3,2,1,6,0,5] 输出: 返回表示以下树的根节点: 6 / \ 3 5 \ / 2 0 \ 1 解法 根据题意,是经典的分而治之的题目,用递归就可以很简单的实现: public TreeNode constructM
一份执着✘
2019-12-30
3270
LeetCode 589 N-ary Tree Preorder Traversal
题意 给定一颗 N 叉树 的根节点,返回前序遍历后的数组. 例 : 给予树: 1 / | \ 3 2 4 / \ 5 6 将其前序遍历返回: [1,3,5,6,2,4]. 解法 和二叉树的前序遍历差不多,需要注意处理好子节点的顺序即可。 非递归解法: /* // Definition for a Node. class Node { public int val; public List<Node> childre
一份执着✘
2019-12-30
2520
LeetCode 530 Minimum Absolute Difference in BST
因为是一颗二叉搜索树, 所以采用中序遍历可以得到所有值从小到大的排列, 那么将每个节点与上个节点的值 prev 进行比较得出相差值 answer, 判断相差值与上个相差值, 将更小的存起来. 直到遍历完整棵树.
一份执着✘
2019-12-29
3590
LeetCode 461 Hamming Distance
解法一可是基于 LeetCode 191 Number of 1 Bits 中的解法二.
一份执着✘
2019-12-29
4110
LeetCode 191 Number of 1 Bits
这里用到了位运算, 如数字 5, 二进制位为 101, 那么使用 & 运算, 和 1 进行与运算, 如:
一份执着✘
2019-12-29
3510
LeetCode 80 Remove Duplicates from Sorted Array II
和 LeetCode 26 Remove Duplicates from Sorted Array 这道题比较类似。 定义变量 k,表示待修改的元素位置,默认为 0,然后遍历后面的元素判断符合条件时,覆盖 k,然后 k 向后移动一位。 判断条件为:
一份执着✘
2018-12-24
3340
Shiro 集成 Spring 之加密
本章我们来讲解,如果使用 Shiro 集成 Spring 后,使用加密功能。本章基础代码为上一章 : Shiro 集成 Spring 中的代码。
一份执着✘
2018-08-27
3720
Shiro加密
安全总是最重要的,对于用户的数据,我们一般都不会以原密码明文保存,而是经过加密后保存。
一份执着✘
2018-08-27
7680
二叉树层序遍历为二维数组
题意 有一棵二叉树,请设计一个算法,按照层次打印这棵二叉树。 给定二叉树的根结点 root,请返回打印结果,结果按照每一层一个数组进行储存,所有数组的顺序按照层数从上往下,且每一层的数组内元素按照从左往右排列。保证结点数小于等于 500。 样例 3 / \ 5 2 / \ / \ 8 3 4 1 输出结果应为 [[3], [5, 2], [8, 3, 4, 1]] 思路 其实这就是一个二叉树层序遍历的一道题,只不过需要判断什么时候换
一份执着✘
2018-06-04
1.4K0
平衡二叉树
题意 给定一个二叉树,确定它是高度平衡的。对于这个问题,一棵高度平衡的二叉树的定义是:一棵二叉树中每个节点的两个子树的深度相差不会超过 1。 样例 A) 3 B) 3 / \ \ 9 20 20 / \ / \ 15 7 15 7 二叉树 A 是高度平衡的二叉树,但是 B 不是。 思路 这道题利用了 二叉树的最大深度 这
一份执着✘
2018-06-04
6910
点击加载更多
社区活动
RAG七天入门训练营
鹅厂大牛手把手带你上手实战
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档