自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(535)
  • 资源 (5)
  • 收藏
  • 关注

原创 【已解决】不兼容的类型: java.lang.Long无法转换为com.baomidou.mybatisplus.core.conditions.Wrapper

map.get(“String类型的键”)所提供的是Object类型(如下图),Object类是非基本数据类型。基本数据类型和引用类型不能进行强转。将从数据库接收到的long类型数据转换为String类型,再将String类型转换为int类型/double类型,最后成功解决类型转换报错。我对map中得到的类型进行了强制转换,想要将从数据库查询到的long类型转换为int类型。显示long类型不能转换为integer类型。为什么会不允许强转呢?

2024-04-15 20:30:00 143

原创 【最全四种方案对比】Redis 与 MySQL 数据一致性问题探讨

缓存中存有数据,缓存的数据值 = 数据库中的值;缓存中没有该数据,数据库中的值 = 最新值。缓存的数据值 ≠ 数据库中的值;缓存或者数据库存在旧的数据,导致线程读取到旧数据。❝为何会出现数据一致性问题呢?把 Redis 作为缓存的时候,当数据发生改变我们需要双写来保证缓存与数据库的数据一致。数据库跟缓存,毕竟是两套系统,如果要保证强一致性,势必要引入 2PC 或 Paxos 等分布式一致性协议,或者分布式锁等等,这个在实现上是有难度的,而且一定会对性能有影响。

2024-04-13 10:41:37 768

原创 【架构师】应用架构图

基础结构解决的主要问题包括:如何进行技术层面的分层、开发框架的选择、开发语言的选择、涉及非功能性需求的技术选择。通过产品架构图中得到的应用系统划分,按照系统间的调用关系,形成内部应用的集成架构图。在应用集成架构图中,需要标注调用链路中的业务含义,清楚的标注应用之间发生的业务关系。业务层是对将产品层从粗到细的分解过程。应用架构图的重点是体现应用之间的逻辑关系和通信关系,体现产品的内部关系和外部关系。技术架构是应接应用架构的技术需求,并根据识别的技术需求,进行技术选项,把各个关键技术和技术之间的关系描述清楚。

2024-04-12 22:25:00 470

原创 【特定日期格式转换】日期格式2024.1.1,1.2,1.3,1.4,1.5怎么转换为格式2024.1.1~1.5 星期一、星期二、星期三、星期四、星期五

总的来说,蔡勒公式是一种利用世纪、年份、月份和日期的信息,通过一系列的计算得出日期对应的星期数的方法。它基于公历的置闰规则来考虑,并且原点是公元元年12月31日。将日期格式2024.1.1,1.2,1.3,1.4,1.5怎么转换为格式2024.1.1~1.5 星期一、星期二、星期三、星期四、星期五。2、接着,将日期范围表示为起始日期和结束日期,并用波浪号(~)连接。此外,如果计算的日期是在1582年10月4日或之前,需要使用。1、首先,将日期数字转换为星期几的名称。1月1日(2024.1.1)是星期二。

2024-04-11 20:53:33 352

原创 java中Date与LocalDateTime的区别

1、易读性:LocalDateTime中的方法命名更加清晰和直观,采用了自然语言的方式,提高了代码的可读性和可理解性。Date类中的月份是以0为基准的,即0表示一月,11表示十二月。3、时间单位明确:LocalDateTime中的方法在处理时间单位时明确指定了单位,例如plusDays()、minusHours()等,避免了单位不明确的问题。2、方法链式调用:LocalDateTime提供了一系列方便的方法来处理日期和时间,这些方法可以进行链式调用,使代码更加简洁和优雅。

2024-04-09 21:49:00 382

原创 【已完成】把Win10右键改回Win7的模样

3、右键点击CLSID,点击新建一个项,命名为{86ca1aa0-34aa-4e8b-a509-50c905bae2a2},按下回车键保存。4、右键点击新建的项,然后再新建一个项,命名为InprocServer32,并按下回车键保存。1、win+r打开运行窗口,输入regedit,按下回车键确认即可打开注册表。6、保存注册表后,重启电脑,再查看右键,就会发现已经变成原来的右键菜单了。5、选择新创建的项,双击右侧的默认条目,直接按下回车键。工具:惠普战66、windows11、注册表。

2024-04-09 21:39:19 122

原创 SpringCloud和SpringCloudAlibaba的区别

依托 Spring Cloud Alibaba,你只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里微服务解决方案,通过阿里云中间件来迅速搭建分布式应用系统。研发SpringCloudAlibaba目的是为了推广阿里的产品,如果使用了SpringCloudAlibaba,最好使用alibaba整个体系产品。SpringCloud 部分环境搭建复杂,没有完善的可视化界面,我们需要大量的二次开发和定制。阿里使用过的组件经历了考验,性能强悍,设计合理,现在开源出来给大家用。

2024-03-28 22:44:14 1356

原创 JDK1.6、1.7、1.8内存区域的变化?

运行时常量池、类常量池都移动到元空间。字符串常量池、静态变量,存放在堆上。JDK1.7时发生了一些变化,将。,而在直接内存中划出一块区域作为。在JDK1.8时彻底。

2024-03-25 20:50:36 430

原创 JVM的内存区域

本地方法栈(Native Method Stacks)与虚拟机栈所发挥的作用是非常相似的,其区别只是虚拟机栈为虚拟机执行Java方法(也就是字节码)服务,而本地方法栈则是为虚拟机使用到的本地(Native)方法服务。Java虚拟机栈描述的是Java方法执行的线程内存模型:方法执行时,JVM会同步创建一个栈帧,用来存储局部变量表、操作数栈、动态连接等。它特别在Java虚拟机规范对它的约束非常宽松,所以方法区的具体实现历经了许多变迁,例如jdk1.7之前使用永久代作为方法区的实现。To Survivor空间。

2024-03-25 20:50:01 624

原创 【大全】常用加解密算性能、安全对比

对称加密算法是应用最早的加密算法,技术成熟,在进行对称加密的过程中,发送方将明文信息和加密秘钥一起进行加密处理后,将生成的密文信息发送给接收方,接收方收到密文后,使用已知的秘钥对其进行解密,才能得到正确的明文信息.使用RSA加密的时候,会产生一对密钥对,公钥和私钥,公钥是大家都可以知道的,私钥是只有信息的发送方和接收方知道的,其他任何第三方都不能知道的,即必须保证私钥的私有性和安全性.通常情况下,当数据在网络中传输时,私钥是不会和数据一起传送,这样就减少了秘钥泄露的可能性.可用于文件或数据校验,保存密码。

2024-03-23 22:00:18 772

原创 【索引失效】MySQL索引失效场景

如果规则是 MySQL 会将自动「数字」转换成「字符串」,就相当于 select "10" > "9",这个是字符串比较,字符串比较大小是逐位从高位到低位逐个比较(按ascii码) ,那么"10"字符串相当于 “1”和“0”字符的组合,所以先是拿 “1” 字符和 “9” 字符比较,因为 “1” 字符比 “9” 字符小,所以结果应该是 0。不过,从 MySQL 8.0 开始,索引特性增加了函数索引,即可以针对函数计算后的值建立一个索引,也就是说该索引的值是函数计算后的值,所以就可以通过扫描索引来查询数据。

2024-03-23 10:45:36 993

原创 【单调栈】代码随想录算法训练营第六十天 |84.柱状图中最大的矩形(待补充)

给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1。求在该柱状图中,能够勾勒出来的矩形的最大面积。

2024-03-14 21:04:32 219 2

原创 【单调栈】代码随想录算法训练营第五十九天 |503.下一个更大元素II, 42. 接雨水 (待补充)

给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。

2024-03-14 21:00:07 310

原创 【单调栈】代码随想录算法训练营第五十八天 |739. 每日温度, 496.下一个更大元素 I (待补充)

例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。对于 num1 中的数字 4 ,你无法在第二个数组中找到下一个更大的数字,因此输出 -1。对于 num1 中的数字 2 ,第二个数组中没有下一个更大的数字,因此输出 -1。输入: nums1 = [4,1,2], nums2 = [1,3,4,2].输入: nums1 = [2,4], nums2 = [1,2,3,4].

2024-03-14 20:53:09 311

原创 【动态规划】代码随想录算法训练营第五十七天 |647. 回文子串, 516.最长回文子序列,动态规划总结篇 (待补充)

如今动态规划已经讲解了42道经典题目,共50篇文章,是时候做一篇总结了。关于动态规划,在专题第一篇关于动态规划,你该了解这些!就说了动规五部曲,而且强调了五部对解动规题目至关重要!这是Carl做过一百多道动规题目总结出来的经验结晶啊,如果大家跟着「代码随想哦」刷过动规专题,一定会对这动规五部曲的作用感受极其深刻。确定dp数组(dp table)以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组。

2024-03-14 20:45:49 244

原创 【动态规划】代码随想录算法训练营第五十五天 |583. 两个字符串的删除操作, 72. 编辑距离,编辑距离总结篇 (待补充)

本周我们讲了动态规划之终极绝杀:编辑距离,为什么叫做终极绝杀呢?细心的录友应该知道,我们在前三篇动态规划的文章就一直为 编辑距离 这道题目做铺垫。心思的录友应该会发现我用了三道题做铺垫,才最后引出了动态规划:72.编辑距离(opens new window),Carl的良苦用心呀,你们体会到了嘛!

2024-03-14 20:38:19 789

原创 【动态规划】代码随想录算法训练营第五十四天 |392.判断子序列, 115.不同的子序列 (待补充)

字符串的一个 子序列 是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,"ACE" 是 "ABCDE" 的一个子序列,而 "AEC" 不是)字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。现在,我们可以绘制一些连接两个数字 A[i] 和 B[j] 的直线,只要 A[i] == B[j],且我们绘制的直线不与任何其他连线(非水平线)相交。

2024-03-14 20:31:21 376

原创 【动态规划】代码随想录算法训练营第五十三天 |1143.最长公共子序列, 1035.不相交的线 ,53. 最大子序和 动态规划 (待补充)

例如,"ace" 是 "abcde" 的子序列,但 "aec" 不是 "abcde" 的子序列。现在,我们可以绘制一些连接两个数字 A[i] 和 B[j] 的直线,只要 A[i] == B[j],且我们绘制的直线不与任何其他连线(非水平线)相交。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。

2024-03-14 20:25:28 309

原创 【动态规划】代码随想录算法训练营第五十二天 |300.最长递增子序列, 674. 最长连续递增序列 ,718. 最长重复子数组 (待补充)

连续递增的子序列 可以由两个下标 l 和 r(l < r)确定,如果对于每个 l

2024-03-14 20:14:52 260

原创 【已解决】由于启动计算机时出现了页面文件配置問題,Windows在你的计算机 人上创建了一个临时页面文件

第七步:输入“初始大小”和“最大值”,然后点击“设置”按钮。第九步:一路“确定”后再次弹出“必须重新启动计算机才能使新的设置生效。”的窗口,点击“是”,系统将自动重启。第一步:用鼠标右键单击桌面上的“计算机”图标,在弹出的快捷菜单中选择“属性”。第八步:出现“要使改动生效,需要重新启动计算机”的提示,单击“确定”即可。第六步:设置虚拟内存最好在非系统盘里,选中盘符,点击“自定义大小”。第五步:在下面的虚拟内存点击“更改”按钮。第二步:单击系统属性窗口里的“高级”标签。第三步:再单击性能旁边的“设置”按钮。

2024-03-14 10:51:45 195

原创 【已解决】‘packaging‘ with value ‘jar‘ is invalid. Aggregator projects require ‘pom‘ as packaging.

解决方法:没有指定打包方式。在pom加入打包方式。

2024-03-14 04:54:44 113

原创 【动态规划】代码随想录算法训练营第五十一天 | 309.最佳买卖股票时机含冷冻期, 714.买卖股票的最佳时机含手续费,总结(待补充)

之前我们已经把力扣上股票系列的题目都讲过的,但没有来一篇股票总结,来帮大家高屋建瓴,所以总结篇这就来了!动态规划:121.买卖股票的最佳时机(opens new window)动态规划:122.买卖股票的最佳时机II(opens new window)动态规划:123.买卖股票的最佳时机III(opens new window)动态规划:188.买卖股票的最佳时机IV(opens new window)动态规划:309.最佳买卖股票时机含冷冻期(opens new window)

2024-03-11 15:45:56 428

原创 【动态规划】代码随想录算法训练营第五十天 |123.买卖股票的最佳时机III,188.买卖股票的最佳时机IV(待补充)

给定一个整数数组 prices ,它的第 i 个元素 prices[i] 是一支给定的股票在第 i 天的价格。给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。

2024-03-11 15:05:14 345

原创 【动态规划】代码随想录算法训练营第四十八天 |121. 买卖股票的最佳时机,122.买卖股票的最佳时机II(待补充)

你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。返回你可以从这笔交易中获取的最大利润。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。

2024-03-11 14:54:53 308

原创 【动态规划】代码随想录算法训练营第四十七天 |198.打家劫舍,213.打家劫舍II ,337.打家劫舍III (待补充)

同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。给定一个代表每个房屋存放金额的非负整数数组,计算你 在不触动警报装置的情况下 ,能够偷窃到的最高金额。

2024-03-11 14:45:27 380

原创 【动态规划】代码随想录算法训练营第四十六天 |139.单词拆分,关于多重背包,你该了解这些! ,背包问题总结篇!(待补充)

多重背包在面试中基本不会出现,力扣上也没有对应的题目,大家对多重背包的掌握程度知道它是一种01背包,并能在01背包的基础上写出对应代码就可以了。至于背包九讲里面还有混合背包,二维费用背包,分组背包等等这些,大家感兴趣可以自己去学习学习,这里也不做介绍了,面试也不会考。这篇背包问题总结篇是对背包问题的高度概括,讲最关键的两部:递推公式和遍历顺序,结合力扣上的题目全都抽象出来了。而且每一个点,我都给出了对应的力扣题目。最后如果你想了解多重背包,可以看这篇动态规划:关于多重背包,你该了解这些!

2024-03-11 14:32:36 803

原创 【动态规划】代码随想录算法训练营第四十五天 |70. 爬楼梯 (进阶),322. 零钱兑换 ,279.完全平方数 (待补充)

完全平方数 是一个整数,其值等于另一个整数的平方;例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。当 m = 2,n = 3 时,n = 3 这表示一共有三个台阶,m = 2 代表你每次可以爬一个台阶或者两个台阶。给你一个整数 n ,返回和为 n 的完全平方数的 最少数量。输出描述:输出一个整数,表示爬到楼顶的方法数。注意:给定 n 是一个正整数。

2024-03-11 14:26:09 1019

原创 【动态规划】代码随想录算法训练营第四十四天 |完全背包,518. 零钱兑换 II , 377. 组合总和 Ⅳ (待补充)

细心的同学可能发现,全文我说的都是对于纯完全背包问题,其for循环的先后循环是可以颠倒的!但如果题目稍稍有点变化,就会体现在遍历顺序上。如果问装满背包有几种方式的话?那么两个for循环的先后顺序就有很大区别了,而leetcode上的题目都是这种稍有变化的类型。这个区别,我将在后面讲解具体leetcode题目中给大家介绍,因为这块如果不结合具题目,单纯的介绍原理估计很多同学会越看越懵!别急,下一篇就是了!最后,

2024-03-10 21:36:08 601

原创 【动态规划】代码随想录算法训练营第四十三天 |1049. 最后一块石头的重量 II,494. 目标和,474.一和零 (待补充)

- 力扣(LeetCode)代码随想录3、题目:有一堆石头,每块石头的重量都是正整数。每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x

2024-03-10 21:27:17 633

原创 【动态规划】代码随想录算法训练营第四十一天 |01.背包理论基础,01.背包问题,你该了解这些!滚动数组,416.分割等和子集(待补充)

讲了这么多才刚刚把二维dp的01背包讲完,这里大家其实可以发现最简单的是推导公式了,推导公式估计看一遍就记下来了,但难就难在如何初始化和遍历顺序上。可能有的同学并没有注意到初始化 和 遍历顺序的重要性,我们后面做力扣上背包面试题目的时候,大家就会感受出来了。下一篇 还是理论基础,我们再来讲一维dp数组实现的01背包(滚动数组),分析一下和二维有什么区别,在初始化和遍历顺序上又有什么差异,敬请期待!以上的讲解可以开发一道面试题目(毕竟力扣上没原题)。

2024-03-10 21:13:06 802

原创 【动态规划】代码随想录算法训练营第三十九天 |62.不同路径,63.不同路径II(待补充)

机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。机器人试图达到网格的右下角(在下图中标记为“Finish”)。一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。那么从左上角到右下角将会有多少条不同的路径?解释: 从左上角开始,总共有 3 条路径可以到达右下角。网格中的障碍物和空位置分别用 1 和 0 来表示。

2024-03-10 20:58:02 384

原创 【动态规划】代码随想录算法训练营第四十天 |343.整数拆分,96.不同的二叉搜索树(待补充)

给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。返回你可以获得的最大乘积。给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种?

2024-02-28 17:59:06 186

原创 【已解决】@tableid can‘t more than one

实体里面不能有两个@TableId,只留一个就好了。

2024-02-23 16:28:59 314

原创 【动态规划】代码随想录算法训练营第三十八天 |基础知识,509.斐波那契数,70.爬楼梯,746.使用最小花费爬楼梯(待补充)

动态规划,英文:Dynamic Programming,简称DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。所以动态规划中每一个状态一定是由上一个状态推导出来的,这一点就区分于贪心,贪心没有状态推导,而是从局部直接选最优的,在关于贪心算法,你该了解这些!中我举了一个背包问题的例子。例如:有N件物品和一个最多能背重量为W 的背包。第i件物品的重量是weight[i],得到的价值是value[i]。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。

2024-02-22 18:07:55 1075

原创 【贪心算法】代码随想录算法训练营第三十七天 |738.单调递增的数字,968.监控二叉树,总结(待补充)

本题只要想清楚个例,例如98,一旦出现strNum[i - 1] > strNum[i]的情况(非单调递增),首先想让strNum[i - 1]减一,strNum[i]赋值9,这样这个整数就是89。就可以很自然想到对应的贪心解法了。想到了贪心,还要考虑遍历顺序,只有从后向前遍历才能重复利用上次比较的结果。最后代码实现的时候,也需要一些技巧,例如用一个flag来标记从哪里开始赋值9。1、将整数转换为字符串。2、将字符串转换为字符数组。3、从字符串的倒数第二个字符开始,遍历字符数组。

2024-02-20 21:10:33 700

原创 【贪心算法】代码随想录算法训练营第三十六天 |435.无重叠区间,763.划分字母区间,56.合并区间(待补充)

这道题目leetcode标记为贪心算法,说实话,我没有感受到贪心,找不出局部最优推出全局最优的过程。就是用最远出现距离模拟了圈字符的行为。但这道题目的思路是很巧妙的,所以有必要介绍给大家做一做,感受一下。/**1、该函数的功能是将给定字符串分割成尽可能多的连续子串,使得每个子串的字符都不相同,并返回每个子串的长度列表。2、创建一个空的整数列表list,用于存储每个子串的长度。3、创建一个长度为26的整数数组edge,用于存储每个字符最后一次出现的索引。4、将输入字符串s转换为字符数组chars。

2024-02-20 08:54:40 941

原创 【贪心算法】代码随想录算法训练营第三十四天 |860.柠檬水找零,406.根据身高重建队列,452.用最少数量的箭引爆气球(待补充)

咋眼一看好像很复杂,分析清楚之后,会发现逻辑其实非常固定。这道题目可以告诉大家,遇到感觉没有思路的题目,可以静下心来把能遇到的情况分析一下,只要分析到具体情况了,一下子就豁然开朗了。如果一直陷入想从整体上寻找找零方案,就会把自己陷进去,各种情况一交叉,只会越想越复杂了。// 如果当前面值为5元,直接加1five++;// 如果当前面值为10元,则需要判断是否有5元,有则减1five--;ten++;// 如果当前面值为20元,则需要判断是否有10元和5元,有10元则减1,没有则减3张5元。

2024-02-19 21:35:38 1090

原创 【贪心算法】代码随想录算法训练营第三十三天 |1005.K次取反后最大化的数组和,134.加油站,135.分发糖果(待补充)

贪心的题目如果简单起来,会让人简单到开始怀疑:本来不就应该这么做么?这也算是算法?我认为这不是贪心?本题其实很简单,不会贪心算法的同学都可以做出来,但是我还是全程用贪心的思路来讲解。因为贪心的思考方式一定要有!如果没有贪心的思考方式(局部最优,全局最优),很容易陷入贪心简单题凭感觉做,贪心难题直接不会做,其实这样就锻炼不了贪心的思考方式了。所以明知道是贪心简单题,也要靠贪心的思考方式来解题,这样对培养解题感觉很有帮助。// 将数组按照绝对值大小从大到小排序,注意要按照绝对值的大小.boxed()

2024-02-19 12:56:47 666

原创 【贪心算法】代码随想录算法训练营第三十二天 |122.买卖股票的最佳时机II,55.跳跃游戏,45.跳跃游戏II(待补充)

相信大家可以发现,这道题目相当于55.跳跃游戏(opens new window)难了不止一点。但代码又十分简单,贪心就是这么巧妙。以最小的步数增加最大的覆盖范围,直到覆盖范围覆盖了终点,这个范围内最少步数一定可以跳到,不用管具体是怎么跳的,不纠结于一步究竟跳一个单位还是两个单位。// 当前覆盖的最远距离下标// 下一步能覆盖的最远距离下标i++) {// 可达位置的改变次数就是跳跃次数steps++;

2024-02-15 20:02:31 804

原创 代码随想录算法训练营第三十一天 |基础知识,455.分发饼干,376.摆动序列,53.最大子序和(已补充)

贪心的本质是选择每一阶段的局部最优,从而达到全局最优。这么说有点抽象,来举一个例子:例如,有一堆钞票,你可以拿走十张,如果想达到最大的金额,你要怎么拿?指定每次拿最大的,最终结果就是拿走最大数额的钱。每次拿最大的就是局部最优,最后拿走最大数额的钱就是推出全局最优。再举一个例子如果是 有一堆盒子,你有一个背包体积为n,如何把背包尽可能装满,如果还每次选最大的盒子,就不行了。这时候就需要动态规划。动态规划的问题在下一个系列会详细讲解。本篇给出了什么是贪心以及大家关心的贪心算法固定套路。

2024-02-14 17:35:24 1380

log4j2日志配置文件

log4j2日志配置文件

2022-08-22

activiti-explorer-5.22.0.jar

工作流依赖下载

2022-08-16

spring5源码学习

spring5源码学习

2022-07-22

自定义日志脱敏组件,简单3 步完成 Spring Boot 的日志脱敏

对于日志脱敏的方式有很多,常见的有①使用conversionRule标签,继承MessageConverter②书写一个脱敏工具类,在打印日志的时候对特定特字段进行脱敏返回。 两种方式各有优缺点:第一种方式需要修改代码,不符合开闭原则。第二种方式,需要在日志方法的参数进行脱敏,对原生日志有入侵行为。 本组件说明 本组件基于非入侵及脱敏字段扩展考虑,采用yml配置文件来扩展脱敏字段及不同的脱敏规则。其核心思想就是:读取配置文件里的脱敏字段和其脱敏规则。在日志替换的时候将字段进行脱敏。 本组件基于logback+slf4j,暂不支持log4j,如需解决log4j的日志,可以参照本组件的思想去完成。 本组件支持的脱敏数据类型:八大基本类型及其包装类型、String类型、Map、List、JSON字符串、项目中的POJO对象。 注:Map、JSON、List、POJO、List对象的脱敏处理需要配置其对应的字段名即可,无法处理List<八大类型+字符串>类型。 在使用本组件的时候,一定要注重日志打印规范。

2022-07-19

FileUtils.java

文件工具类

2021-12-12

Base64.java

Base64压缩解压图片

2021-12-12

org\vaadin\addons\dcharts-widget

org\vaadin\addons\dcharts-widget

2021-08-14

空空如也

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

TA关注的人

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