自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ThreadLLocal的学习

ThreadLocal是什么?ThreadLocal的数据结构是什么?ThreadLocal为什么会出现内存泄露问题?ThreadLocalMap中Entry的key为什么还要使用弱引用?如何避免内存泄露?

2023-08-09 10:48:41 252

原创 黑马点评学习笔记2

缓存穿透(缓存穿透是什么,缓存穿透得解决方案:缓存空对象、布隆过滤等)、缓存雪崩(缓存雪崩是什么,缓存雪崩得解决方案)、缓存击穿(缓存击穿是什么,缓存击穿的解决方案:互斥锁、逻辑过期,两种解决方案的优缺点对比,互斥锁解决缓存击穿问题的实现所要注意的细节、逻辑过期解决缓存击穿问题的实现所要注意的细节

2023-08-04 09:49:54 373

原创 差分数组工具类

其实差分数组和前缀和数组有点相似前缀和主要适用于原始数组不会被修改的情况下,需要频繁查询某个区间的累计和preSum[i]就是nums[0…i-1]所有元素的累加和若求nums[i…j]的累加和,则计算preSum[j+1]-preSum[i]即可差分数组主要适用于频繁对原始数组的某个区间的元素进行增减(即原数组需要频繁改变)diff[i]就是nums[i]-nums[i-1对nums[i…j]的元素加3,只需要先让diff[i]+=3,然后让diff[j+1]-=3即可。

2023-07-28 10:09:10 244

原创 数组专题攻破新学习笔记

移除有序数组中的重复项、移除元素、二分查找、在排序数组中查找元素的第一个和最后一个位置、最长回文串、区域和检索-数组不可变

2023-07-25 17:28:35 306

原创 黑马点评学习笔记1

缓存的一些问题、更新策略等待

2023-07-21 11:07:37 341 1

原创 链表专题攻破的新学习笔记

相交链表、分割链表、合并k个升序链表、链表的中间节点、环形链表

2023-07-21 10:54:59 82

原创 动态规划设计

300. 最长递增子序列最长递增子序列(Longest Increasing Subsequence,简写 LIS)是非常经典的一个算法问题比较容易想到的是动态规划解法,时间复杂度为O(N^2)比较难想到的是利用二分查找,时间复杂度是 O(NlogN)比如说输入,其中最长的递增子序列是,所以算法的输出应该是 4。比如我们想证明一个数学结论,纳闷我们就会先假设这个结论在k

2023-05-11 11:02:17 419 1

原创 动态规划的学习

动态规划问题的一般形式就是求最值。比如求最长递增子序列、最小编辑距离等求最值的核心问题是什么?就是把所有可行的答案穷举出来,然后在其中找最值求解动态规划的核心问题就是穷举。但是问题千变万化,穷举所有可行解并不是一个容易的事,只有列出正确的状态转移方程才能正确地穷举。而且我们需要判断算法问题是否具备最优子结构,即是否能够通过子问题的最值得到原问题的最值另外,动态规划问题存在重叠子问题,如果暴力穷举的话效率会很低,所以我们需要使用备忘录或者DP table来优化穷举过程,避免不必要的计算。

2023-05-09 14:30:52 575

原创 单调队列解决滑动窗口问题

单调队列其实就是一个队列,只是使用了一点巧妙的方法使得队列中的元素全都是单调递增(或单调递减)的单调队列主要解决以下问题:给你一个数组window,已知其最值为A,如果给window中添加一个数B,那么比较一下A和B就可以立即算出新的最值;但如果要从window数组中减少一个数,就不能直接得到最值了,因为如果减少的这个数恰好是A,就需要遍历window中的所有元素重新寻找新的最值。针对这个问题我们可以用优先级队列解决吗?我们都知道优先级队列是一个特殊的队列,专门用来动态寻找最值得。

2023-05-08 15:02:19 1249 1

原创 单调栈的学习

栈(stack)是很简单的一种数据结构,先进后出的逻辑顺序,符合某些问题的特点,比如说函数调用栈。单调栈实际上就是栈,只是利用了一些巧妙的逻辑使得每次新元素入栈后,栈内的元素都保持有序(单调递增或者单调递减)听起来有点像堆(heap)但是不是堆,单调栈用途不太广泛,只处理一类典型的问题下一个更大元素上一个更小元素在这里说的单调栈的模板都是计算每个元素的下一个更大元素,但如果题目让你计算上一个更大的元素或者计算上一个更大或相等的元素又要如何修改对应的模板呢?

2023-05-06 17:23:10 442

原创 求中位数?

优先级队列是一种受限的数据结构,只能从堆顶添加/删除元素,我们的addNum方法可以从堆顶插入元素,但是findMedian函数需要从数据中间取,这个功能优先级队列是没办法提供的。我们可以这样实现,当我们想要往large里添加元素,不能直接添加,而是要先往small里添加,然后再把small的堆顶元素加到large中,向small中添加元素同理。但是,TreeSet是一种Set其中不存在重复元素的元素,但是我们的数据流可能输入重复数据,而且计算中位数也是需要算上重复元素的。

2023-05-06 14:51:14 1272

原创 docker的学习

Docker是基于Go语言实现的云开源项目。总的来说就是解决了运行环境和配置问题的软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术Docker的主要目标是“Build,Ship and Run Any App,Anywhere",也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的App(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到”一次镜像,处处运行“**Linux容器技术的出现就解决了这样一个问题,而Docker就是在它的基础上发展过来的。

2023-04-24 09:20:03 528

原创 环检测及拓扑排序算法

拓扑排序就是让你把一幅图拉平,而且这个拉平的图里面,所有箭头方向都是一致的很显然,如果一幅有向图中存在环,是无法进行拓扑排序的,因为肯定做不到所有箭头方向一致;反过来,如果一幅图是有向无环图,那么一定可以进行拓扑排序。

2023-04-07 14:55:29 824

原创 完全二叉树、完美二叉树、完满二叉树、计算完全二叉树的结点

完美二叉树是一种特殊的完全二叉树,每层都是满的,像一个稳定的三角形全二叉树从根结点到倒数第二层满足完美二叉树,最后一层可以不完全填充,其叶子结点都靠左对齐。其实理解完全二叉树可以借助于**栈(stack)**的思想。具体就是我们可以将一棵完美二叉树的所有节点按照编号1…15的顺序依次入栈。然后对栈每一次出栈,栈里保存的结点集构造一棵二叉树都是一棵完全二叉树。

2023-04-05 10:19:26 2027

原创 最近公共祖先问题

在这里利用后序遍历效率会进一步下降,因为在后序位置判断,就算根节点就是目标节点也要先去左右子树遍历完所有节点才能判断出来。答:其实这个 很容易解决,如果当前节点是p或q说明他就是最近公告最先,那就直接返回当前节点,否则就遍历他的左右子树。而根据这个说明是先到左右子树中寻找,也就是说我们可以用到的是后序位置,在后序位置判断当前节点的左右子树是否为空,都不为空,则该节点为LCA节点。这是因为题目说了p和q一定存在于二叉树中,所以只要遇到p就说明q在p的下面,那么p就是LCA节点。

2023-04-04 11:29:04 199

原创 This may be the result of an unspecified view, due to default view name generation 报错解决

1.在@Controller上添加@ResonseBody 出现这个报错是因为@Controller上面缺少 @ResonseBody,因为没有@ResonseBody的话就会自动认为我们的Controller返回的是一个页面。2.@RestController=@ResonseBody+@Controller 也就是说我们直接用一个@RestController就能解决问题,而不需要用两个注解。ps:@ResonseBody会将返回值设置为JSON格式。3.在pom.xml中添加thymeleaf依赖。

2023-04-03 15:44:28 1280

原创 快速排序详解及应用

首先我们要知道的是所有递归的算法,你甭管它是干什么的,本质上都是在遍历一棵(递归)树,然后在节点(前中后序位置)上执行代码,你要写递归算法,本质上就是要告诉每个节点需要做什么。return;} // 对 nums[low..high] 进行切分 // 使得 nums[low..p-1]

2023-04-03 14:56:48 773

原创 将本地项目上传到远程仓库的步骤

ps:如果在当前目录中看到.git文件(此文件夹为隐藏文件夹)夹则说明git仓库初始化成功。强制把远程仓库的代码更新到当前分支上(如果仓库为空这一步可以省略)初始化本地环境把该项目编程可被git管理的仓库。ps:这个命令是将文件的修改加入暂存区。master是当前分支的名字。master是当前分支的名字。将本地仓库与远程仓库相关联。注意add后面有一个点。

2023-04-03 08:58:07 1325

原创 归并排序的学习

所有递归的算法,本质上都是在遍历一棵(递归)树,然后在节点(前中后序位置)上执行代码。你要写递归算法,本质上就是要告诉每个节点需要做什么。对于这个专题的归并排序算法,递归的sort函数就是二叉树的遍历函数,而merge函数就是在每个节点上做的事情。

2023-03-31 10:53:30 159

原创 二叉搜索树BST的学习

对于 BST 的每一个节点node,左子树节点的值都比node的值要小,右子树节点的值都比node的值大。对于 BST 的每一个节点node,它的左侧子树和右侧子树都是 BST。二叉搜索树并不算复杂,但我觉得它可以算是数据结构领域的半壁江山,直接基于 BST 的数据结构有 AVL 树,红黑树等等,拥有了自平衡性质,可以提供 logN 级别的增删查改效率;还有 B+ 树,线段树等结构都是基于 BST 的思想来设计的。对于每一个节点root,代码值检查了它的左右孩子节点是否符合左小右大的原则;

2023-03-31 10:51:30 284

原创 瑞吉外卖开发笔记

拦截器是SpringMVC框架自己的,只有使用了SpringMVC框架的工程才能使用拦截器只会拦截访问的控制器方法(只能对action请求起作用),如果访问的是jsp/html/css/image/js是不会进行拦截的(即不拦截静态资源)拦截器是AOP思想的具体应用。拦截器可以多次被调用拦截器可以访问action上下文、堆栈里的对象拦截器不依赖于servlet容器拦截器是基于java的反射机制的拦截器可以获取IOC容器中的各个bean,在拦截器里注入一个service,可以调用业务逻辑。

2023-03-15 20:53:42 515

原创 数组的学习

但是在做了这两道用差分数组做的题之后,我觉得用封装好的差分数组类来解题比较好,这样在遇到不同的提的时候对边界值的操作会更清晰,就不会变成上一题是判断j-1,这一题是判断j。这样对与差分数组技巧的记忆无利,我们对边界是怎样的就单独拿出来处理和判断就好了。还有画图是最好判断边界的了!

2023-03-13 10:04:24 148

原创 链表的专题攻破

单链表的基本技巧,每个技巧都对应着至少一道算法题:1、合并两个有序链表2、链表的分解3、合并k个有序链表4、寻找单链表的倒数第k个节点5、寻找单链表的中点6、判断单链表是否包含环并找出环起点7、判断两个单链表是否相交并找出交点这些解法都用到了,所以说对于单链表相关的题目,双指针的运用是非常广泛的。

2023-03-06 15:18:28 85

原创 二叉堆和优先队列的学习笔记

二叉堆和优先队列

2023-03-06 09:56:31 88

原创 二叉树的学习

二叉树的前序、中序、后序遍历以及层次遍历

2023-03-04 15:03:35 67

原创 Git的学习

Git的学习

2023-02-27 16:24:05 86

原创 荷兰国旗问题

荷兰国旗问题

2023-02-24 09:46:55 52

原创 LeetCode:移动零

移动零

2023-02-23 22:19:55 235

原创 LeetCode: 最小操作次数使数组元素相等

最小操作次数使数组元素相等

2023-02-22 10:16:24 130

原创 AOP底层原理

AOP底层原理

2023-01-12 22:47:20 100

原创 什么是AOP

什么是AOP

2023-01-12 21:48:30 67

原创 Spring中IOC容器的创建原理

Spring中IOC容器的创建原理

2023-01-12 11:25:05 164

原创 SpringBoot的启动流程

SpringBoot的启动流程

2023-01-10 22:18:42 1026

原创 IOC中Bean的生命周期

IOC中Bean的生命周期

2023-01-10 16:52:26 254

原创 Spring注解驱动开发

Spring注解驱动开发

2023-01-08 23:56:23 650

原创 计算机网络——运输层

计算机网络运输层

2022-12-17 20:54:12 1395 1

原创 计算机网络——网络层(重要!)

计算机网络网络层

2022-12-16 12:33:47 915

原创 区块链复习

区块链期末复习

2022-12-07 18:43:22 3358 2

原创 计算机网络——数据链路层

计算机网络的数据链路层内容

2022-12-05 14:00:32 2076

原创 动态规划练习

动态规划的习题练习

2022-10-22 20:39:40 147

空空如也

空空如也

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

TA关注的人

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