自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (1)
  • 问答 (2)
  • 收藏
  • 关注

原创 Leetcode学习之120. 三角形最小路径和 (经典动态规划)

这只是最经典的动态规划解决,其实还有dp+空间优化,可以看到我们的矩形其实只占用了一半的空间,而且每个子问题只会与上一个**dp[i][j-1],dp[i-1][j-1]**相关,其他的都是无关的,我们可以替换掉这些无关变量,以达到O(n)的空间复杂度。* dp[i][j] = Min(dp[i][j-1],dp[i-1][j-1]) + List.get(i).get(j) 这是针对有左右父节点的元素。每层的最右节点有且只有一个父亲节点,

2024-01-05 16:07:25 410

原创 Leetcode学习之134. 加油站

其实就说明正如我下图说的一样,假设车辆A不能到达 y+1的油站上,则 x到y上的任意一点都无法到达y+1.因为最好的情况是从一开始出发,然后每个油站都有剩余的油(gas>=0),但是这种情况下都无法达到y+1,更别提从x之后的点位出发,每次都从0开始算起(gas=0)带入上面的2个不等式 gas[ z ] + gas[ z+1 ] +…+gas[ z-1 ] )1. gas[ i ] + gas[ i+1 ] +…+ gas[ z ] = > cost[ i ] + cost[ i+1 ] + …

2023-12-08 18:10:10 379

原创 Leetcode学习之209. 长度最小的子数组

这种数组的题目(尤其是连续子数组)第一眼一般都是会用暴力法就能破解,因此可以延伸出第一种解法,暴力法。],逐个遍历,以确定每个 nums[i] — nums[j] >= target,用min一直维护最新的最短连续子数组即可。通常数组,我们都会寻求一种只遍历一次,也就是O(n)的时间复杂度的解法。题目说了,只要>=target就行,那我们只要保持遍历数组的过程中,保持target 值就可以了。* 滑动窗口,通过前后指针,前指针先走,每次判断两指针内的所有数相加是否大于target,记录长度。

2023-11-10 15:23:31 86

原创 Leetcode学习之139.单词拆分---dp

看到这个问题,其实一开始我是想用单纯的逐个单词匹对的方式,也就是通过遍历字符串S,从0开始如果有 s[0~i] contains wordDict里的某个单词,则认为 0 ~ i组成的子串可以拼接出,如果不包含,则通过 0 ~ i-j(j通过循环逐步增加直至到s[0]) + s[j] 查看是否可以独立通过字典中的单词拼接。**用在这个剪枝的方法里。从问题来看,其实是一个背包问题,s就是需要填充的空间,wordDict就是可以填充的物品,由于没有限制wordDict的使用次数,因此可以看作是完全背包问题。

2023-09-27 15:43:02 81

原创 Leetcode学习之167.两数之和II--输入有序数组

有序,二分法,那我们是不是可以通过两个指针,第一个指针i指向第一个数,然后target - numbers[i] = x,把x作为二分查找的new target让他查找呢,这样或许对时间复杂度会有稍稍的提升。这道题其实第一眼看到有序,(二分法的DNA就动了),但是题目只要求了常量级的额外空间,没有时间要求,所以我们可以通过逐个遍历,也就是 n² 的时间复杂度去完成这题目。可以看到一次比对下来,把所有的15以及第一排的遍历都可以省略了,接下来是倒数第二个大的数字,也就是我们的11,,所以我们舍弃后续的遍历。

2023-09-20 11:29:05 45

原创 【工具类】---JAVA图表日期工具类

JAVA折线图,柱状图日期工具类

2023-09-19 17:05:00 63

原创 Leetcode学习之238. 除自身以外数组的乘积

逐个计算,如果可以除法,只需要遍历一次得出整个数组的乘积,然后第二次遍历的时候,用总乘积除掉当前idx对应val即可。因此我们可以利用乘法,其实题目就需要把除去该数,其他的所有乘积,我们只需要遍历一遍,把该数组每个对应的数据项的左右乘数算出来即可,1. 新建左右前缀数组,用于存放当前idx所对应的数据的左右乘数。

2023-08-30 17:56:38 43

原创 Leetcode学习之 80.删除有序数组中的重复项 II

执行速度0ms,题目重点是原地删除以及只可以使用额外的O(1)空间。所以按照平常的新旧数组复制是不可行的。因此想到了利用双指针(fast,slow)利用元素交换下标的或者覆盖的方式进行删除。最后只需要返回slow的下标位置,就是题目所需要的删除后的数组长度啦。图中实例: nums = 0 0 1 1 1 1 2 3 3。

2023-08-04 11:33:09 68

原创 Leetcode学习之 12.整数转罗马数字

Leetcode 12.整数转罗马数字(middle)

2023-07-28 00:28:08 36

原创 分布式,多线程(MQ多消费者)的情况下,关于redis以及数据库出现的数据重复问题

Transactional和Synchronized在多线程环境下的一些问题

2023-03-03 20:57:14 663

原创 Base64转码后不保存到本地,直接上传minio

Base64编码图片无需保存到本地,直接上传到Minio

2022-12-21 17:39:59 1477

原创 MybatisPlus代码生成器的flt模板文件改造计划

我们知道freemarket可以通过#{xxx},${xxxx}渲染对象变量的值. 正如下图所示,我们知道前面通常是项目的名字以及一些公司前缀,这些通常在一个很大项目中都是固定的,每次需要添加新的需求的时候,都可以利用代码生成器根据模板快速生成对应的基础服务.里面的字段太少太少,并不能满足我们的需求,因此,我们需要利用java的继承,对其进行拓展,那应该如何下手呢. 首先我们需要找到该模板引擎所渲染的字段最后到底是出自哪里的.中的execute方法,把我们设置的。模板中的包名也如期的出现了。.......

2022-08-04 14:28:08 755

原创 通过Map映射替代递归形成一个层级树形结构数据

最近项目中遇到了层级树形结构,数据库存放着的是节点id,以及节点的父节点,刚开始是通过递归节点id作为下一层父节点id的形式,用很多条sql来进行查询直接得出的,,但是由于随着层数以及数据的增加,而且同一层级之间涉及到菜单优先级排序的问题,递归的sql及时是组装一起进行批量查询也需要将近 2s 的时间,这对于一个查询来说无疑是很慢的。因此后面更换了一种思路,通过一次性查询出所有的节点,最后在进行拼装。...

2022-06-30 14:51:17 584

原创 java利用Calendar类和localDateTime对于时间折线图的横坐标的一个实现工具类

java日期工具类

2022-06-30 11:11:29 345

原创 算法学习之单源最短路径问题---Dijkstra的JAVA实现

Dijkstra是用于计算从一个顶点到其余各顶点的最短路径算法(构建单源点的最短路径树),解决的是有权图中最短路径问题。由于每次都会选取当前起点以及经过中间点到目标点的最短距离,而不考虑其他未知点的因素,故而是一个基于局部最优解的贪心策略。因而,每当在已经确定的集合S中加入新的顶点v,都需要重新更新起点到其他点的最短距离。Dijkstra其实和Prim(普利姆)算法极其相似,但是Prim是构造一个图中的最小生成树,类似于在一个图中找出一条连接所有顶点的最短路径,而Dijkstra是找出起点到其他顶点的最短

2022-05-14 15:44:40 1511

原创 Merkle树的生成和SPV验证信息的策略

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2022-04-25 11:03:48 5435

原创 HashMap

HashMap实现Map接口1.7 链表+数组,数组–Entry1.8 链表+数组+红黑树,节点—Node数组:存储区间连续,占用空间多,查找快链表:查找效率低,删改快线程不安全,hashtable安全,但是效率低,因为里面都添加了synchronizedConcurrenthashmap线程安全,采用分段锁Collections.SynchronizedMap也是另一种线程安全Note:JDK1.7之前会在多线程下发生死循环,是因为JDK1.7解决冲突的链表是使用头插法的JDK1.

2022-02-23 17:37:12 287

原创 更换idea密钥后,项目全部失效问题

今天在更换idea项目后,再打开之前的项目,全部失效,一开始以为是SDK的问题后面添加了SDK,同样没反应,项目更是连MAVEN都没识别出来,尝试按网上说的发现无效后,后面修改了项目结构添加回去内容根目录就好了...

2021-02-12 23:47:37 583

原创 Java内部类

何为内部类java中,把一个类定义在另一个类的里面,或者方法里面,这样的类称为内部类。内部类可以随意访问外部类的任何成员,但是相反,外部类却不可随意访问内部类的成员,需要先实例化内部类方可调用。内部类的分类1.成员内部类2.局部内部类3.匿名内部类4.静态内部类成员内部类成员内部类定义与一个类的里面,大概样子如下所示public class Outer { public String outer ="outer"; public void isOuter(){

2021-01-04 01:12:19 66

原创 IdentityHashMap

IdentityHashMap和HashMap长的挺类似public class IdentityHashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, java.io.Serializable, Cloneable和HashMap一样继承和实现了同样的抽象类和接口,是一种特殊的HashMap,他的巧妙之处在于HashMap是用传入的key值对象判断是否相等,相等就覆盖上一个valu.

2020-12-19 01:39:50 374 1

原创 String,StringBuffer和StringBuilder

String:public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */ private final char value[];可以看到String是被保存到一个value[ ] 里的,而且不管是方法还是类都被final修饰着,所以String是

2020-12-09 22:14:23 67

原创 Mybatis collection简单粗暴的一对多的层级列表

今天参考了一些案列,写了一个多级列表,一开始打算用循环递归的方式,但是后面看到mybatis的collection可以实现,我就尝试了一下Mybatis中的SQL语句<mapper namespace="com.example.list.demo.mapper.ListMapper"> <resultMap id="MyListMap" type="com.example.list.demo.entity.RiskTable"> <id property=

2020-12-01 16:29:31 321

原创 shiro+jwt中,token错误后,不断在jwtfilter中死循环

最近刚接到手的jwt+shiro的项目整合,发现一直有个问题,token错误后,他会一直在JWTFilter中不断循环,最终报:java.lang.IllegalStateException: Cannot call sendError() after the response has been committed如上错误正因为形成了死循环,导致了response多次的请求,报了这个错误,初步断定,是Filter中有问题,异常没抛出来,进入到JWTFilter中,断点发现确实如此.try {

2020-10-21 18:27:36 663

原创 @RequestParam,@RequestBody,@PathVariable三个绑定参数的注解记录

@RequestParam:我们可以使用@RequestParam从请求中提取查询参数,表单参数甚至文件,指示方法参数应绑定到Web请求参数的注释,我们可以从中看到,它提供了4个参数给我们选择,其中value(),和name()互为别名.public @interface RequestParam { @AliasFor("name") String value() default ""; @AliasFor("value") String name() default

2020-10-14 18:07:49 680

原创 Cookie值中存在无效字符[xx]

今天写cookie的时候出现了这样的错误:发现原来是特殊字符的问题(可以通过查询ASCII表看看cookie.setValue里的值哪个不支持,然后去避免他),因为cookie的版本兼容性不同…我们可以再设置cookie的时候尽量去避免他,或者我们可以设置URL编码:value = URLEncoder.encode(value,"utf-8");编完码后,输出前记得解码value = URLDecoder.decode(value,"utf-8");...

2020-07-02 18:13:34 3828

原创 错误:java: JDK isn‘t specified for module “模块名“

错误:java: JDK isn’t specified for module “模块名”今天移动模块的时候,运行tomcat出现了这个error,经过排查发现是包的问题,导入的包因为移动都丢失了,重新导入库就好了

2020-07-02 17:05:34 1643

原创 新安装的Tomcat使用startup.bat报错,访问localhost 404

18-Jun-2020 22:09:16.247 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [D:\Tomcat8\apache-tomcat-8.5.56\webapps\examples]18-Jun-2020 22:09:16.270 严重 [localhost-startStop-1] org.apache.catalina.core.Conta.

2020-06-18 22:27:42 964 1

原创 Class.getClassLoader()查找出来的路径带有%20,导致路径查找不正确

类似这种路径看起来没问题,但是就是一堆%20,查了下就空格的锅replacepath = path.replace("%20"," ");转换下就好了

2020-06-13 19:23:19 194

原创 java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver

Eclipse运行成功,IDEA一直爆红最后的解决方法把jar包拖入到你的idea JDK的/lib/ext下就可以了

2020-06-10 20:52:17 276

原创 排序二叉树 插入数据的递归

item是要插入的数据递归方法如下:int BSTInsert(BTNode *&root,DataType item){ BTNode *p=root,*q=NULL; //q指向p的双亲 while(p!=NULL) { q=p; if(item==p->data) return 0; //item已存在不必插入 if(item<p->data) return (BSTInsert(p->left,item)); //在左子树中查找 el

2020-06-07 11:59:48 403

Nginx阿里云个人项目配置代理

Nginx阿里云个人项目配置代理

2023-09-18

JAVA tools,dt jar.rar

jdk 1.8.251 tools.jar 和 dt.jar,打包把两个jar包放在一起了,都是1.8.251版本的,需要的就自己下载吧

2020-06-02

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

TA关注的人

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