自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 收藏
  • 关注

原创 linux学习笔记1

linux基本命令学习

2022-09-03 22:21:38 254 1

原创 (二)手写Spring项目之AOP

github: https://github.com/iamzhubaoliang/MySpring博客不易,希望给个star,如果有问题可以评论,也可以github issue,我会耐心解答疑惑1. 什么是AOPAOP就是面向切面编程,将横切服务与核心业务逻辑分离,更好关注核心业务逻辑或者说将系统级服务与具体的商业逻辑分离。AOP的实现主要实现方法是代理,Spring中使用的是原生JDK的动态代理2. 原生JDK动态代理原生的JDK动态代理首先代理类要实现InvocationHandler接口,

2021-09-20 21:23:02 207

原创 leetcode8 字符串转换整数

请你来实现一个myAtoi(string s)函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。函数myAtoi(string s) 的算法如下:读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。读入下一个字符,直到到达下...

2021-09-18 19:13:00 60

原创 (一)手写Spring项目之IOC

(一)手写Spring项目之IOC1. 什么是IOC2. 实现方式3. 手动实现的方式代码1.扫描:2.创建项目地址:https://github.com/iamzhubaoliang/MySpring1. 什么是IOCIOC Inversion of Control 即控制反转,它可以降低代码之间的耦合性,最长见的就是Spring的依赖注入,它是怎么反转的?因为它的对象并不是我们new出来的而是被动的由容器进行注入的,spring相当于中间连接将原对象与属性进行了分离,由spring来控制对象的生命

2021-09-14 10:19:47 209

原创 leetcode 47全排列

给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。示例 1:输入:nums = [1,1,2]输出:[[1,1,2],[1,2,1],[2,1,1]]示例 2:输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]提示:1 <= nums.length &l...

2021-09-09 09:59:00 20

原创 129. 求根节点到叶节点数字之和

给你一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。每条从根节点到叶节点的路径都代表一个数字:例如,从根节点到叶节点的路径 1 -> 2 -> 3 表示数字 123 。计算从根节点到叶节点生成的 所有数字之和 。叶节点 是指没有子节点的节点。示例 1:输入:root = [1,2,3]输出:25解释:从根到叶子节点路径 1->...

2021-09-07 11:33:00 21

原创 117. 填充每一个节点下一个右侧节点指针

给定一个二叉树struct Node {int val;Node *left;Node *right;Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有next 指针都被设置为 NULL。进阶:你只能使用常量级额外空间。使用递归解题也符合要求,本题中递归程序...

2021-09-06 21:30:00 28

原创 MVCCduo

全称Multi-Version Concurrency Control,即多版本并发控制1.数据库数据会产生什么问题脏读:一个事务读取了另一个事务未提交的数据不可重复读:同一个事务中读取同一个数据会有不同的结果幻读:针对插入来说的,事务A 按照一定条件进行数据读取, 期间事务B 插入了相同搜索条件的新数据,事务A再次按照原先条件进行读取时,发现了事务B 新插入的数据 称为幻读如果事务...

2021-09-06 16:34:00 23

原创 107. 二叉树的层序遍历 II

给定一个二叉树,返回其节点值自底向上的层序遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树 [3,9,20,null,null,15,7],返回其自底向上的层序遍历为:[[15,7],[9,20],[3]]链接:https://leetcode-cn.com/problems/binary-tree-level-order-traversal...

2021-09-06 09:33:00 19

原创 ThreadLocal理解

http://www.threadlocal.cn/#2

2021-09-05 21:09:00 22

原创 Springboot之@EnableAsync

1.@EnableAsync可以让Spring启用异步方法执行,跟配置注解@Configuration结合2.使用的时候@Async加上方法的Bean名称下面的例子是访问test/thread的URL时候可以看到先在网页上打印,然后过了5000个单位的时间后控制台才输出,实现了简单的线程池例子例子仓库https://gitee.com/lordoftime/javaLearnContro...

2021-09-05 20:50:00 27

原创 leetcode142. 环形链表

给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。说明:不允许修改给定的链表。进阶:你是否可以使用 O(1) 空间解决此题?示例 1:输入:hea...

2021-09-05 15:17:00 18

原创 leetcode138 复制带随机指针的链表

给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。构造这个链表的深拷贝。深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 random 指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表...

2021-09-05 12:43:00 20

原创 leetcode 106从中序与后序遍历序列构造二叉树

根据一棵树的中序遍历与后序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出中序遍历 inorder =[9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3]返回如下的二叉树:链接:https://leetcode-cn.com/problems/construct-binary-tree-from-inorder-and-posto...

2021-09-04 10:13:00 21

原创 leetcode105 从前序与中序遍历序列中构造二叉树

给定一棵树的前序遍历 preorder 与中序遍历 inorder。请构造二叉树并返回其根节点。示例 1:Input: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7]Output: [3,9,20,null,null,15,7]示例 2:Input: preorder = [-1], inorder = [-1]Output: [...

2021-09-03 10:45:00 22

原创 leetcode103 二叉树的锯齿形层序遍历

给定一个二叉树,返回其节点值的锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:给定二叉树[3,9,20,null,null,15,7],3/ 9 20/ 15 7返回锯齿形层序遍历如下:[[3],[20,9],[15,7]]链接:https://leetcode-cn.com/problems/binary-t...

2021-09-02 11:35:00 19

原创 leetcode96不同的二叉搜索树

给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。示例 1:输入:n = 3输出:5示例 2:输入:n = 1输出:1提示:1 <= n <= 19使用递归如果不使用备忘录那么将会超时在递归的时候包含许多重叠的子问题,可以使用备忘录记录下来,用的时候进行查询public int...

2021-09-01 16:26:00 20

原创 leetcode95 不同的二叉搜索树II

给你一个整数 n ,请你生成并返回所有由 n 个节点组成且节点值从 1 到 n 互不相同的不同 二叉搜索树 。可以按 任意顺序 返回答案。示例 1:输入:n = 3输出:[[1,null,2,null,3],[1,null,3,2],[2,1,3],[3,1,null,null,2],[3,2,null,1]]示例 2:输入:n = 1输出:[[1]]链接:https://leet...

2021-09-01 15:11:00 22

原创 leetcode3 无重复字符的最长字串

给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例1:输入: s = "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: s = "pwwkew"输出: 3解释: 因为无重复...

2021-08-31 09:33:00 19

原创 leetcode109 有序链表转换二叉树

给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1。示例:链接:https://leetcode-cn.com/problems/convert-sorted-list-to-binary-search-tree平衡链表有很多种注意一点,二叉排序树中序遍历是从小到大的。pu...

2021-08-30 21:20:00 19

原创 leetcode 86分隔链表

给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。你应当 保留 两个分区中每个节点的初始相对位置。示例 1:输入:head = [1,4,3,2,5,2], x = 3输出:[1,2,2,4,3,5]示例 2:输入:head = [2,1], x = 2输出:[1,2]提示:链表中节点的数目...

2021-08-30 10:18:00 46

原创 leetcode 83 删除排序链表中重复的元素

存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。返回同样按升序排列的结果链表。示例 1:输入:head = [1,1,2]输出:[1,2]输入:head = [1,1,2,3,3]输出:[1,2,3]提示:链表中节点数目在范围 [0, 300] 内-100 <= Node.val <= 100题目数据保...

2021-08-29 23:03:00 21

原创 leetcode82删除链表中重复的元素II

存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除链表中所有存在数字重复情况的节点,只保留原始链表中没有重复出现的数字。返回同样按升序排列的结果链表。输入:head = [1,2,3,3,4,4,5]输出:[1,2,5]输入:head = [1,1,1,2,3]输出:[2,3]链表中节点数目在范围 [0, 300] 内-100 <= Node.val &...

2021-08-29 17:10:00 15

原创 leetcode 61旋转链表

给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。示例 1:输入:head = [1,2,3,4,5], k = 2输出:[4,5,1,2,3]输入:head = [0,1,2], k = 4输出:[2,0,1]提示:链表中节点的数目在范围 [0, 500] 内-100 <= Node.val <= 1000 <= k <=...

2021-08-29 15:43:00 70

原创 leetcode 206反转链表

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]示例 2:输入:head = [1,2]输出:[2,1]示例 3:输入:head = []输出:[]提示:链表中节点的数目范围是 [0, 5000]-5000 <= Node.val <= 5000尾递归:比普通的递归好,具...

2021-08-28 11:48:00 13

原创 leetcode链表反转II

给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。输入:head = [1,2,3,4,5], left = 2, right = 4输出:[1,4,3,2,5]示例 2:输入:head = [5], left = 1, right = 1输出...

2021-08-27 19:07:00 18

原创 leetcode 爬楼梯

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1 阶 + 1 阶 + 1 阶1 阶 + 2 阶2 阶 + 1 阶...

2021-08-27 16:56:00 18

原创 leetcode1190 反转每对括号间的子串

给出一个字符串 s(仅含有小写英文字母和括号)。请你按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串,并返回最终的结果。注意,您的结果中 不应 包含任何括号。示例 1:输入:s = "(abcd)"输出:"dcba"示例 2:输入:s = "(u(love)i)"输出:"iloveu"解释:先反转子字符串 "love" ,然后反转整个字符串。示例 3:输入:s = "...

2021-08-26 20:42:00 17

原创 leetcode 101 对称二叉树

给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:public boolean isSymmetric(TreeNode root) { return dfs(root.left, root.right); } public boolea...

2021-08-24 11:41:00 13

原创 leetcode116 . 填充每个节点的下一个右侧节点指针

给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:struct Node {int val;Node *left;Node *right;Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置为 NULL...

2021-08-23 21:03:00 11

原创 leetcode99 恢复二叉搜索树

给你二叉搜索树的根节点 root ,该树中的两个节点被错误地交换。请在不改变其结构的情况下,恢复这棵树。进阶:使用 O(n) 空间复杂度的解法很容易实现。你能想出一个只使用常数空间的解决方案吗?示例 1:链接:https://leetcode-cn.com/problems/recover-binary-search-tree树上节点的数目在范围 [2, 1000] 内-231 &lt...

2021-08-23 10:33:00 11

原创 leetcode98验证二叉搜索树

给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入:2/ 1 3输出: true示例 2:输入:5/ 1 4/ 3 6输出: false解释: 输入为: [5,1,4,null,null,...

2021-08-23 09:30:00 14

原创 leetcode40 组合数II

给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次。注意:解集不能包含重复的组合。示例 1:输入: candidates = [10,1,2,7,6,1,5], target = 8,输出:[[1,1,6],[1,2,5],[1,7]...

2021-08-21 11:48:00 13

原创 leetcode78 子集

给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。示例 1:输入:nums = [1,2,3]输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]示例 2:输入:nums = [0]输出:[[],[0]]链接:https://leetcode-c...

2021-08-20 20:47:00 14

原创 39 组合总和

给定一个无重复元素的正整数数组 candidates 和一个正整数 target ,找出 candidates 中所有可以使数字和为目标数 target 的唯一组合。candidates 中的数字可以无限制重复被选取。如果至少一个所选数字数量不同,则两种组合是唯一的。对于给定的输入,保证和为 target 的唯一组合数少于 150 个。来源:力扣(LeetCode)链接:https://...

2021-08-18 22:32:00 13

原创 leetcode 解数独

编写一个程序,通过填充空格来解决数独问题。数独的解法需 遵循如下规则:数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图)数独部分空格内已填入了数字,空白格用 '.' 表示。链接:https://leetcode-cn.com/problems/sudoku-solver输入:boa...

2021-08-18 21:51:00 21

原创 leetcode 22 括号的生成

数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。有效括号组合需满足:左括号必须以正确的顺序闭合。示例 1:输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]示例 2:输入:n = 1输出:["()"]链接:https://leetcode-cn.com/problems/...

2021-08-18 20:15:00 14

原创 leetcode17 电话号码的字母组合

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母链接:https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number示例 1:输入:digits = "23"输出:["ad","ae","af",...

2021-08-18 19:28:00 25

原创 leetcode23. 合并K个升序链表

给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。输入:lists = [[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[1->4->5,1->3->4,2->6]将它们合并到一个有序链表中得到。1->1->2->3-&g...

2021-08-04 10:46:00 15

原创 leetcode21. 合并两个有序链表

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0]来源:力扣(LeetCode)链接:https://leetcode-...

2021-08-03 21:45:00 17

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除