自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 二叉树遍历(递归、迭代、左侧链思路迭代)

各种遍历写法。

2023-05-28 11:56:29 54

原创 归并排序代码(递归,迭代,多线程)

归并排序的各种版本代码。

2023-05-10 23:08:01 78

原创 原子变量以及CAS

Java中的原子变量是指,可以保证在多线程并发访问时操作的正确性。Java中提供了一组原子类型,包括AtomicInteger、AtomicBoolean、AtomicReference等。原子变量可以使用原子操作来保证多线程访问的原子性,这些操作是由硬件提供支持的,使用锁等高层次机制来实现。原子变量支持一些常见的操作,如增加、减少、比较交换等,这些操作具有原子性,不会被中断或同时被多个线程执行。使用原子变量可以避免线程同步问题,提高程序的性能,尤其在高并发环境下。

2023-04-26 00:43:58 193

原创 实现一个简单的阻塞队列

阻塞队列是一种特殊的队列,它在队列为空的时候,从队头取数据的操作会被阻塞,直到有数据被放入队列;而在队列已满的时候,往队尾放数据的操作会被阻塞,直到队列中有空闲位置。阻塞队列在多线程环境下被广泛使用,通常用于实现生产者-消费者模型,可以有效地协调生产者和消费者之间的流量,避免了线程间的竞争和协作问题。

2023-04-23 00:28:34 204

原创 【设计模式】建造型模式

这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。

2023-04-20 02:27:00 87

原创 【SpringBoot学习笔记】使用JavaConfig配置容器

首先创建所需要的类:package com.blushyes.vo;public class Student { private String name; private Integer age; private String sex; public String getName() { return name; } public void setName(String name) { this.name = name

2022-02-04 17:09:52 453

原创 【SpringBoot学习笔记】使用xml配置容器

首先创建所需要的类:package com.blushyes.vo;public class Student { private String name; private Integer age; private String sex; public String getName() { return name; } public void setName(String name) { this.name = name

2022-02-04 16:43:09 584

原创 不撞南墙不回头——浅谈深度优先搜索(DFS)

深度优先搜索算法(英语:Depth-First-Search,DFS)是一种用于遍历或搜索树或图的算法。这个算法会尽可能深的搜索树的分支。当节点v的所在边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访问为止。一定要找到最深的节点才回头,然后再寻找其他邻居节点,这就是深度优先搜索。实现深度优先算法的实现方式有两种,分别是用

2022-01-30 17:44:27 525

原创 看似很难实际都一样——最小路径和(二维动态规划)

原题:最小路径和这里我们就不一一分析递归的可行性了,直接上思路,老规矩,先上递归思路。思路首先仍然是问题转换,原题给的函数和问题转换后的函数分别为:int minPathSum(vector<vector<int>>& grid); //返回grid从左上到右下的最小路径和int minPathSumToXY(vector<vector<int>>& grid, vector<vector<int>>&am

2022-01-27 00:35:29 621

原创 做控制台小游戏太麻烦?——自己写一个简易的控制台游戏库

灵感本来想做个迷宫小游戏来练习dfs,但是控制台游戏那些输入输出,光标移动之类的代码太过繁琐,于是我觉得自己写一个简易的控制台游戏库,封装一些常用的代码。地图我的想法是控制台游戏,一般都是二维的,所以需要一张地图,外部只需要对这个地图进行操作就可以实现对整个游戏内容的操作了。...

2022-01-25 17:38:33 2542

原创 看似动态规划,实则不需要——等差数列划分

原题:等差数列划分老规矩,先看看能否用递归解。转换假设现在的数列为[1,2,3,4,5,6],要怎么才能找出其子数列中所有的等差数列而无遗漏呢?很容易想到,我们可以找出其所有子数列中以某数开头或者以某树结尾的等差数列。这里就拿找出所有以某数结尾的等差数列举例。假设要找出[1,2,3,4,5,6]的子数列中所有的等差数列,只需把问题转换为分别找出这个数列的所有子数列中以i(i in [1,2,3,4,5,6])结尾并将其求和即可。是否能分解为子问题考虑一般的情况,以数列nums中的第i(i&g

2022-01-24 01:44:08 546

原创 做一个聪明的小偷——打家劫舍(一维动态规划)

不怕小偷有文化,就怕小偷会规划。今天来看一道一维动态规划的例题:打家劫舍首先来尝试一下利用递归法求解我们先来考虑一下是否可以用递归法求解首先我们考虑这几个条件是否满足:1.是否可以分解为子问题2.是否满足最优子结构3.是否存在递归基是否可以分解为子问题假设我们现在偷的房子集为[2,7,9,3,1],我们...

2022-01-23 19:10:41 313

原创 用空间换取时间——浅谈动态规划

灵感递归能够解决的问题,说白了就是能否分解为许多个相同类型的规模更小的子问题的问题,其实就是一种分治思想,递归只是其中的一种实现手段而已。而当存在着大量重复子问题的时候,单纯的递归效率确实太低了,所以这种情况下,若仍想使用递归,就必须使用带备忘录的递归。那么,是否存在一种非递归,也就是迭代的实现方法呢?没错,它就是我们今天的主角——动态规划。初识我们先来回顾一下带备忘录的递归——将每次计算的结果储存起来,下次若再次遇到,则只需直接从记忆表中提取即可。这是一种用空间换取时间的方法,显然,这是十分正确有

2022-01-22 01:35:42 1370

原创 禁止套娃——浅谈递归思想

灵感相信大家小时候都被这样一个小故事给绕进去过:从前有座山,山上有个庙。庙里有两个和尚,一个老和尚、一个小和尚。老和尚在给小和尚讲故事,老和尚说,从前有座山,山上有个庙。庙里有两个和尚,一个老和尚、一个小和尚。老和尚在给小和尚讲故事,老和尚说……小时候给别人讲这个故事,总能引得大家哄堂大笑。现在再次看到这个故事时,却发现它并没有想象中的那么简单,因为其中隐含着一种重要的编程思想——递归思想。初识那么问题就来了,什么是递归思想呢?我们先来看看递归的维基百科:递归(英语:Recursion)

2022-01-21 20:49:47 333

空空如也

空空如也

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

TA关注的人

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