自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 什么是并查集

想象一下,你是一个幼儿园老师,班上有10个小朋友。每天自由活动时,小朋友们会自发组成小团体玩耍。并查集就是帮你快速回答以下问题的工具:小明和小红是不是在同一个团体里玩?(查找)如果小明和小红的团体要合并,怎么操作?(合并)

2025-04-19 17:37:17 240

原创 常见的数据结构设计题

大家好,我是Felix, 好久没有更新了,最近一直在准备一些面试,想着跳槽,就比较忙。在学习的过程中,碰到一些数据结构设计题,如果平时没有遇到,可能还是真的比较难想到。今天和大家分享一下。

2025-03-30 17:49:30 202

原创 关于位运算的相关算法

在计算机中,很多时候,位运算的效率要比普通的数学运算的效率高很多,因为计算机的本质就是二进制的。今天我们来分享下,在面试中,出现的高频的位运算算法题。

2025-03-10 19:10:39 378

原创 几道常见的手撕算法分享

Hello,大家好,我是felix。好久不见,最近一直没有分享算法方面的知识,有点小忙。这两天在刷一些手撕算法的时候,正好看到一些题,跟大家分享一下,都是非常经典的题目。

2025-02-18 23:07:55 478

原创 morris遍历二叉树

问:如果时间复杂度和空间复杂度都是O(1)的情况下,遍历一颗二叉树呢?这个时候,我们可能会想到使用递归的方式去实现,但是递归实际是是JVM帮助我们压栈弹栈了,它的本质在空间的占用上并不能达到要求,那该如何去实现呢?这个时候,我们就可以认识一下线索二叉树了,如何实现呢,听我慢慢道来。

2025-01-19 15:20:14 232

原创 二叉树相关题目

这两天在某站看了左神的算法课,发现受益匪浅,发现好的老师,总是可以用言简意赅的语言,一下子找到问题的重点,在这里和大家分享一下。二叉树例子:

2025-01-05 13:03:54 349

原创 你知道21世纪最伟大的算法吗

我们接触过很多类型的排序,如冒泡,选择,插入排序等。但是这些排序的时间复杂度都是O(n),无法达到更低了,如何才能够达到更低的时间复杂度呢,于是快速排序应运而生,它的复杂度可以达到O(Nlogn),在我们使用java中的数组工具类的sort方法,也就是Arrays.sort()的时候,底层就是用的快速排序。那我们一直看看,它的奥妙在于哪里。

2024-12-22 22:37:44 498

原创 判断回文链表

Hello, 大家好,我是Felix。今天来道简单的算法,如果判断一个链表是回文链表。

2024-12-19 21:37:26 555

原创 通过田忌赛马来了解贪心算法

大家好,我是Felix。今天我们通过田忌赛马的这样一个生动的例子来了解贪心算法。每当想起这个生动的例子,理解贪心算法就会相对形象一些了。

2024-12-16 22:51:49 656

原创 今日链表初识

链表是一种每个节点不光可以存储当前节点数据,并且还会保存这一个节点的指针。如图:那如何使用java语言去定义一个链表呢?// 当前节点的值int val;// 下一个节点的指针val = x;

2024-12-15 20:58:51 421

原创 了解滑动窗口

大家好,我是Felix。今天给大家带来一道经典的算法题,来了解一下动态窗口。加上这个,我们已经了解到了动态规划,贪心算法,积少成多嘛。

2024-12-10 23:07:18 406

原创 深度剖析JWT

在此之前,我们先了解一下什么是token。只要是有过项目经验的朋友,应该都知道,token就是一个令牌,相当于是一个认证。用户初次登陆,服务端会生成一个token,前端会保存起来。客户端下次来访问我的应用,会带着token过来,如果我验证后,你的token是正确,且未过期,我就可以让你访问我的应用,否则跳转到登陆页面。服务端会保存token,这样的话,服务端相对来说会有存储压力token能够存储的信息有限,如果说我还想要通过token拿到用户的其他信息,那就避免不了db的访问。

2024-12-09 21:57:04 435

原创 二叉树的层序遍历

如下图就是一个二叉树,而过是层序遍历的话,顺序应该为【5, 3, 6, 2, 4, 1, 7】这个应该很好理解,就是像是楼房一样,一层一层,从左往右读下来。这个很符合我们的思维模式。

2024-12-05 22:24:34 476

原创 如何使用AOP完成LOG的记录

试想一下,你有这种需求,你需要对方法的执行时间,或者入参,出参等进行记录。这样,很多情况下,你需要定义多个切点,这样,你的xml配置就非常繁琐,显得并不是很优雅。当然我这里声明了一个注解的属性,operate,我们可以标注这个方法的操作类型,这个可以根据具体业务去实现,后面我们会取出来也打印在LOG中。注解的本质上就是一个标识,它可以把特殊的东西标注出来,使得我们能狗快速定位到,那注解就满足了上面的要求。下面,我们就要定义一个切面,切点就是这个注解啦,然后我们可以定义它的环绕通知去记录方法执行时间等。

2024-12-02 19:36:01 370

原创 建造者模式

当我们想要创建一个复杂对象的时候,我们通常都是把他的属性,都准备好,然后利用全参数构造把它创建出来,但是,这有一个弊端: 如果我想要一个对象,它没必要那么多属性呢,只需要两个,三个,那聪明的你肯定会想到再来个重载的构造呗!很多设计模式,都继承到了spring中,比如说模板模式,单例模式,代理模式,观察者模式等等,以至于我们平时都没有感觉到自己用到了设计模式,那今天讲到的这个建造者模式,学会了真的是可以用起来,是你的代码更加优雅的。这时候,就可以用到建造者模式。我们来创建一个马云,身价过亿,车,房都是好的。

2024-12-01 22:00:00 334

原创 有多少方式可以实现线程的轮流打印

小知识补充:很多时候,提到内置锁,很多人不知道是什么,其实内置锁就是synchronized, 这就是JAVA设计之初自带的解决多线程的方案,而后序的JUC(java并发包)是java后期,其他作者去写的。大家好,我是Felix,相信有过面试经验的朋友都知道,线程之前的通信经常会作为面试的笔试题来考察大家,但是,你知道有多少种方式可以实现嘛,今天来整理一下。小技巧:在编写这种线程通信的代码时候,他们总是遵循这种编程技巧。比如说我们现在要实现两个线程轮流打印AB。可以好好琢磨下,是不是这个道理。

2024-12-01 17:40:58 233

原创 BFS, DFS也没那么难理解嘛

Hello, 大家好,我是Felix, 之前看那些大厂的面经的时候,经常会说到深度优先,广度优先的,当时觉得好高大上的词,后来我私下学习,通过一个比较生动形象的案例,也有点理解了。好的,话不多说,我们直接上案例。

2024-12-01 17:32:29 291

原创 Web 三大组件之Filter

我们知道,浏览器和服务器进行交互的时候,肯定避免不了发送Http请求,那么请求到达后端controller接口的过程中,其实我们可以设定一层拦截,这层拦截其实就是过滤器啦。形象一点说,它就像是一条河的大坝,我们可以进行拦截。其中这个order属性的值约小,代表优先级就越高@Bean。

2024-12-01 17:31:38 1028

原创 就今天吧,我要把二叉树的遍历一次性全搞懂!

二叉树是一种常见的数据结构,由一个或者多个节点组成,每个节点都会有一个左节点或者右节点。看到图形我们也就很容易理解了二叉树的概念了,每个节点除了记录本身的值以外,还有两个指针指向左节点和父节点,当然,这个指针也可以为NULL。PS: 原谅我的图画的比较难看哈那这个时候,我们会有一个问题了,你们在工作中会有真实业务用到这个二叉树吗,我碰到的还是很少的,但是它是一种思想,学习还是很有意义的。好的,那我们那手写一个二叉树吧。int val;

2024-12-01 17:30:38 408

原创 单例模式,由浅入深理解

在我们的应用中,绝大多数的Bean对象都属于是无状态的对象。但是,我们工作中几乎不会去这样写,其实可以用枚举,它是非常好的单例,哈哈哈哈哈,发现说了这么多,竟然工作中不用,但是学习就是这样,量变产生质变。如下图,想象一下,如果两个线程同时到达第13行代码,此时,由于bean是null,所以都会去创建,那如果是秒杀场景下呢,成千上万的线程就会过来,那内存很有可能极大的浪费了,系统性能也会下降。由于指令重排的存在,第二步,第三步很有可能就是反的,那这样,我们的bean其实就是未初始化的一个bean了。

2024-12-01 17:19:19 500

原创 通过打家劫舍来理解动态规划

打家劫舍使得动态规划理解简单多啦!

2024-12-01 17:18:14 510

空空如也

空空如也

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

TA关注的人

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