- 博客(529)
- 资源 (5)
- 收藏
- 关注
原创 SpringCloud和SpringCloudAlibaba的区别
依托 Spring Cloud Alibaba,你只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里微服务解决方案,通过阿里云中间件来迅速搭建分布式应用系统。研发SpringCloudAlibaba目的是为了推广阿里的产品,如果使用了SpringCloudAlibaba,最好使用alibaba整个体系产品。SpringCloud 部分环境搭建复杂,没有完善的可视化界面,我们需要大量的二次开发和定制。阿里使用过的组件经历了考验,性能强悍,设计合理,现在开源出来给大家用。
2024-03-28 22:44:14 202
原创 JDK1.6、1.7、1.8内存区域的变化?
运行时常量池、类常量池都移动到元空间。字符串常量池、静态变量,存放在堆上。JDK1.7时发生了一些变化,将。,而在直接内存中划出一块区域作为。在JDK1.8时彻底。
2024-03-25 20:50:36 390
原创 JVM的内存区域
本地方法栈(Native Method Stacks)与虚拟机栈所发挥的作用是非常相似的,其区别只是虚拟机栈为虚拟机执行Java方法(也就是字节码)服务,而本地方法栈则是为虚拟机使用到的本地(Native)方法服务。Java虚拟机栈描述的是Java方法执行的线程内存模型:方法执行时,JVM会同步创建一个栈帧,用来存储局部变量表、操作数栈、动态连接等。它特别在Java虚拟机规范对它的约束非常宽松,所以方法区的具体实现历经了许多变迁,例如jdk1.7之前使用永久代作为方法区的实现。To Survivor空间。
2024-03-25 20:50:01 610
原创 【大全】常用加解密算性能、安全对比
对称加密算法是应用最早的加密算法,技术成熟,在进行对称加密的过程中,发送方将明文信息和加密秘钥一起进行加密处理后,将生成的密文信息发送给接收方,接收方收到密文后,使用已知的秘钥对其进行解密,才能得到正确的明文信息.使用RSA加密的时候,会产生一对密钥对,公钥和私钥,公钥是大家都可以知道的,私钥是只有信息的发送方和接收方知道的,其他任何第三方都不能知道的,即必须保证私钥的私有性和安全性.通常情况下,当数据在网络中传输时,私钥是不会和数据一起传送,这样就减少了秘钥泄露的可能性.可用于文件或数据校验,保存密码。
2024-03-23 22:00:18 727
原创 【索引失效】MySQL索引失效场景
如果规则是 MySQL 会将自动「数字」转换成「字符串」,就相当于 select "10" > "9",这个是字符串比较,字符串比较大小是逐位从高位到低位逐个比较(按ascii码) ,那么"10"字符串相当于 “1”和“0”字符的组合,所以先是拿 “1” 字符和 “9” 字符比较,因为 “1” 字符比 “9” 字符小,所以结果应该是 0。不过,从 MySQL 8.0 开始,索引特性增加了函数索引,即可以针对函数计算后的值建立一个索引,也就是说该索引的值是函数计算后的值,所以就可以通过扫描索引来查询数据。
2024-03-23 10:45:36 977
原创 【单调栈】代码随想录算法训练营第六十天 |84.柱状图中最大的矩形(待补充)
给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1。求在该柱状图中,能够勾勒出来的矩形的最大面积。
2024-03-14 21:04:32 200 2
原创 【单调栈】代码随想录算法训练营第五十九天 |503.下一个更大元素II, 42. 接雨水 (待补充)
给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。
2024-03-14 21:00:07 303
原创 【单调栈】代码随想录算法训练营第五十八天 |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 301
原创 【动态规划】代码随想录算法训练营第五十七天 |647. 回文子串, 516.最长回文子序列,动态规划总结篇 (待补充)
如今动态规划已经讲解了42道经典题目,共50篇文章,是时候做一篇总结了。关于动态规划,在专题第一篇关于动态规划,你该了解这些!就说了动规五部曲,而且强调了五部对解动规题目至关重要!这是Carl做过一百多道动规题目总结出来的经验结晶啊,如果大家跟着「代码随想哦」刷过动规专题,一定会对这动规五部曲的作用感受极其深刻。确定dp数组(dp table)以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组。
2024-03-14 20:45:49 236
原创 【动态规划】代码随想录算法训练营第五十五天 |583. 两个字符串的删除操作, 72. 编辑距离,编辑距离总结篇 (待补充)
本周我们讲了动态规划之终极绝杀:编辑距离,为什么叫做终极绝杀呢?细心的录友应该知道,我们在前三篇动态规划的文章就一直为 编辑距离 这道题目做铺垫。心思的录友应该会发现我用了三道题做铺垫,才最后引出了动态规划:72.编辑距离(opens new window),Carl的良苦用心呀,你们体会到了嘛!
2024-03-14 20:38:19 777
原创 【动态规划】代码随想录算法训练营第五十四天 |392.判断子序列, 115.不同的子序列 (待补充)
字符串的一个 子序列 是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,"ACE" 是 "ABCDE" 的一个子序列,而 "AEC" 不是)字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。现在,我们可以绘制一些连接两个数字 A[i] 和 B[j] 的直线,只要 A[i] == B[j],且我们绘制的直线不与任何其他连线(非水平线)相交。
2024-03-14 20:31:21 370
原创 【动态规划】代码随想录算法训练营第五十三天 |1143.最长公共子序列, 1035.不相交的线 ,53. 最大子序和 动态规划 (待补充)
例如,"ace" 是 "abcde" 的子序列,但 "aec" 不是 "abcde" 的子序列。现在,我们可以绘制一些连接两个数字 A[i] 和 B[j] 的直线,只要 A[i] == B[j],且我们绘制的直线不与任何其他连线(非水平线)相交。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。
2024-03-14 20:25:28 301
原创 【动态规划】代码随想录算法训练营第五十二天 |300.最长递增子序列, 674. 最长连续递增序列 ,718. 最长重复子数组 (待补充)
连续递增的子序列 可以由两个下标 l 和 r(l < r)确定,如果对于每个 l
2024-03-14 20:14:52 253
原创 【已解决】由于启动计算机时出现了页面文件配置問題,Windows在你的计算机 人上创建了一个临时页面文件
第七步:输入“初始大小”和“最大值”,然后点击“设置”按钮。第九步:一路“确定”后再次弹出“必须重新启动计算机才能使新的设置生效。”的窗口,点击“是”,系统将自动重启。第一步:用鼠标右键单击桌面上的“计算机”图标,在弹出的快捷菜单中选择“属性”。第八步:出现“要使改动生效,需要重新启动计算机”的提示,单击“确定”即可。第六步:设置虚拟内存最好在非系统盘里,选中盘符,点击“自定义大小”。第五步:在下面的虚拟内存点击“更改”按钮。第二步:单击系统属性窗口里的“高级”标签。第三步:再单击性能旁边的“设置”按钮。
2024-03-14 10:51:45 128
原创 【已解决】‘packaging‘ with value ‘jar‘ is invalid. Aggregator projects require ‘pom‘ as packaging.
解决方法:没有指定打包方式。在pom加入打包方式。
2024-03-14 04:54:44 98
原创 【动态规划】代码随想录算法训练营第五十一天 | 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 420
原创 【动态规划】代码随想录算法训练营第五十天 |123.买卖股票的最佳时机III,188.买卖股票的最佳时机IV(待补充)
给定一个整数数组 prices ,它的第 i 个元素 prices[i] 是一支给定的股票在第 i 天的价格。给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
2024-03-11 15:05:14 339
原创 【动态规划】代码随想录算法训练营第四十八天 |121. 买卖股票的最佳时机,122.买卖股票的最佳时机II(待补充)
你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。返回你可以从这笔交易中获取的最大利润。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。
2024-03-11 14:54:53 304
原创 【动态规划】代码随想录算法训练营第四十七天 |198.打家劫舍,213.打家劫舍II ,337.打家劫舍III (待补充)
同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。给定一个代表每个房屋存放金额的非负整数数组,计算你 在不触动警报装置的情况下 ,能够偷窃到的最高金额。
2024-03-11 14:45:27 376
原创 【动态规划】代码随想录算法训练营第四十六天 |139.单词拆分,关于多重背包,你该了解这些! ,背包问题总结篇!(待补充)
多重背包在面试中基本不会出现,力扣上也没有对应的题目,大家对多重背包的掌握程度知道它是一种01背包,并能在01背包的基础上写出对应代码就可以了。至于背包九讲里面还有混合背包,二维费用背包,分组背包等等这些,大家感兴趣可以自己去学习学习,这里也不做介绍了,面试也不会考。这篇背包问题总结篇是对背包问题的高度概括,讲最关键的两部:递推公式和遍历顺序,结合力扣上的题目全都抽象出来了。而且每一个点,我都给出了对应的力扣题目。最后如果你想了解多重背包,可以看这篇动态规划:关于多重背包,你该了解这些!
2024-03-11 14:32:36 782
原创 【动态规划】代码随想录算法训练营第四十五天 |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 1012
原创 【动态规划】代码随想录算法训练营第四十四天 |完全背包,518. 零钱兑换 II , 377. 组合总和 Ⅳ (待补充)
细心的同学可能发现,全文我说的都是对于纯完全背包问题,其for循环的先后循环是可以颠倒的!但如果题目稍稍有点变化,就会体现在遍历顺序上。如果问装满背包有几种方式的话?那么两个for循环的先后顺序就有很大区别了,而leetcode上的题目都是这种稍有变化的类型。这个区别,我将在后面讲解具体leetcode题目中给大家介绍,因为这块如果不结合具题目,单纯的介绍原理估计很多同学会越看越懵!别急,下一篇就是了!最后,
2024-03-10 21:36:08 598
原创 【动态规划】代码随想录算法训练营第四十三天 |1049. 最后一块石头的重量 II,494. 目标和,474.一和零 (待补充)
- 力扣(LeetCode)代码随想录3、题目:有一堆石头,每块石头的重量都是正整数。每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x
2024-03-10 21:27:17 630
原创 【动态规划】代码随想录算法训练营第四十一天 |01.背包理论基础,01.背包问题,你该了解这些!滚动数组,416.分割等和子集(待补充)
讲了这么多才刚刚把二维dp的01背包讲完,这里大家其实可以发现最简单的是推导公式了,推导公式估计看一遍就记下来了,但难就难在如何初始化和遍历顺序上。可能有的同学并没有注意到初始化 和 遍历顺序的重要性,我们后面做力扣上背包面试题目的时候,大家就会感受出来了。下一篇 还是理论基础,我们再来讲一维dp数组实现的01背包(滚动数组),分析一下和二维有什么区别,在初始化和遍历顺序上又有什么差异,敬请期待!以上的讲解可以开发一道面试题目(毕竟力扣上没原题)。
2024-03-10 21:13:06 778
原创 【动态规划】代码随想录算法训练营第三十九天 |62.不同路径,63.不同路径II(待补充)
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。机器人试图达到网格的右下角(在下图中标记为“Finish”)。一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。那么从左上角到右下角将会有多少条不同的路径?解释: 从左上角开始,总共有 3 条路径可以到达右下角。网格中的障碍物和空位置分别用 1 和 0 来表示。
2024-03-10 20:58:02 380
原创 【动态规划】代码随想录算法训练营第四十天 |343.整数拆分,96.不同的二叉搜索树(待补充)
给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。返回你可以获得的最大乘积。给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种?
2024-02-28 17:59:06 183
原创 【动态规划】代码随想录算法训练营第三十八天 |基础知识,509.斐波那契数,70.爬楼梯,746.使用最小花费爬楼梯(待补充)
动态规划,英文:Dynamic Programming,简称DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。所以动态规划中每一个状态一定是由上一个状态推导出来的,这一点就区分于贪心,贪心没有状态推导,而是从局部直接选最优的,在关于贪心算法,你该了解这些!中我举了一个背包问题的例子。例如:有N件物品和一个最多能背重量为W 的背包。第i件物品的重量是weight[i],得到的价值是value[i]。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。
2024-02-22 18:07:55 1067
原创 【贪心算法】代码随想录算法训练营第三十七天 |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 697
原创 【贪心算法】代码随想录算法训练营第三十六天 |435.无重叠区间,763.划分字母区间,56.合并区间(待补充)
这道题目leetcode标记为贪心算法,说实话,我没有感受到贪心,找不出局部最优推出全局最优的过程。就是用最远出现距离模拟了圈字符的行为。但这道题目的思路是很巧妙的,所以有必要介绍给大家做一做,感受一下。/**1、该函数的功能是将给定字符串分割成尽可能多的连续子串,使得每个子串的字符都不相同,并返回每个子串的长度列表。2、创建一个空的整数列表list,用于存储每个子串的长度。3、创建一个长度为26的整数数组edge,用于存储每个字符最后一次出现的索引。4、将输入字符串s转换为字符数组chars。
2024-02-20 08:54:40 939
原创 【贪心算法】代码随想录算法训练营第三十四天 |860.柠檬水找零,406.根据身高重建队列,452.用最少数量的箭引爆气球(待补充)
咋眼一看好像很复杂,分析清楚之后,会发现逻辑其实非常固定。这道题目可以告诉大家,遇到感觉没有思路的题目,可以静下心来把能遇到的情况分析一下,只要分析到具体情况了,一下子就豁然开朗了。如果一直陷入想从整体上寻找找零方案,就会把自己陷进去,各种情况一交叉,只会越想越复杂了。// 如果当前面值为5元,直接加1five++;// 如果当前面值为10元,则需要判断是否有5元,有则减1five--;ten++;// 如果当前面值为20元,则需要判断是否有10元和5元,有10元则减1,没有则减3张5元。
2024-02-19 21:35:38 1085
原创 【贪心算法】代码随想录算法训练营第三十三天 |1005.K次取反后最大化的数组和,134.加油站,135.分发糖果(待补充)
贪心的题目如果简单起来,会让人简单到开始怀疑:本来不就应该这么做么?这也算是算法?我认为这不是贪心?本题其实很简单,不会贪心算法的同学都可以做出来,但是我还是全程用贪心的思路来讲解。因为贪心的思考方式一定要有!如果没有贪心的思考方式(局部最优,全局最优),很容易陷入贪心简单题凭感觉做,贪心难题直接不会做,其实这样就锻炼不了贪心的思考方式了。所以明知道是贪心简单题,也要靠贪心的思考方式来解题,这样对培养解题感觉很有帮助。// 将数组按照绝对值大小从大到小排序,注意要按照绝对值的大小.boxed()
2024-02-19 12:56:47 662
原创 【贪心算法】代码随想录算法训练营第三十二天 |122.买卖股票的最佳时机II,55.跳跃游戏,45.跳跃游戏II(待补充)
相信大家可以发现,这道题目相当于55.跳跃游戏(opens new window)难了不止一点。但代码又十分简单,贪心就是这么巧妙。以最小的步数增加最大的覆盖范围,直到覆盖范围覆盖了终点,这个范围内最少步数一定可以跳到,不用管具体是怎么跳的,不纠结于一步究竟跳一个单位还是两个单位。// 当前覆盖的最远距离下标// 下一步能覆盖的最远距离下标i++) {// 可达位置的改变次数就是跳跃次数steps++;
2024-02-15 20:02:31 802
原创 代码随想录算法训练营第三十一天 |基础知识,455.分发饼干,376.摆动序列,53.最大子序和(已补充)
贪心的本质是选择每一阶段的局部最优,从而达到全局最优。这么说有点抽象,来举一个例子:例如,有一堆钞票,你可以拿走十张,如果想达到最大的金额,你要怎么拿?指定每次拿最大的,最终结果就是拿走最大数额的钱。每次拿最大的就是局部最优,最后拿走最大数额的钱就是推出全局最优。再举一个例子如果是 有一堆盒子,你有一个背包体积为n,如何把背包尽可能装满,如果还每次选最大的盒子,就不行了。这时候就需要动态规划。动态规划的问题在下一个系列会详细讲解。本篇给出了什么是贪心以及大家关心的贪心算法固定套路。
2024-02-14 17:35:24 1376
原创 代码随想录算法训练营第三十天天 |332.重新安排行程,51.N皇后,37.解数独(待补充)
1、题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台2、文章讲解:代码随想录3、题目:给定一个机票的字符串二维数组 [from, to],子数组中的两个成员分别表示飞机出发和降落的机场地点,对该行程进行重新规划排序。所有这些机票都属于一个从 JFK(肯尼迪国际机场)出发的先生,所以该行程必须从 JFK 开始。提示:示例 1:示例 2:51.N皇后1、题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台2、文章讲解:代码随想录3、题目:n 皇后问题 研究的是如
2024-02-12 15:25:21 778
原创 代码随想录算法训练营第二十九天 |491.递增子序列,46.全排列,47.全排列II(待补充)
可以看出元素1在[1,2]中已经使用过了,但是在[2,1]中还要在使用一次1,所以处理排列问题就不用使用startIndex了。本题给出的示例,还是一个有序数组 [4, 6, 7, 7],这更容易误导大家按照排序的思路去做了。给定一个整型数组, 你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2。而本题求自增子序列,是不能对原数组进行排序的,排完序的数组都是自增子序列了。给定一个 没有重复 数字的序列,返回其所有可能的全排列。这又是子集,又是去重,是不是不由自主的想起了刚刚讲过的。
2024-02-11 22:06:29 901
原创 代码随想录算法训练营第二十八天 |93.复原IP地址,78.子集,90.子集II(已补充)
例如:"0.1.2.201" 和 "192.168.1.1" 是 有效的 IP 地址,但是 "0.011.255.245"、"192.168.1.312" 和 "192.168@1.1" 是 无效的 IP 地址。示例: 输入: nums = [1,2,3] 输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ]给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。说明:解集不能包含重复的子集。
2024-02-11 17:50:09 398
原创 代码随想录算法训练营第二十七天 |39.组合总和,40.组合总和II,131.分割回文串(已补充)
给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。示例: 输入: "aab" 输出: [ ["aa","b"], ["a","a","b"] ]说明: 所有数字(包括目标数)都是正整数。candidates 中的每个数字在每个组合中。candidates 中的数字可以。
2024-02-09 19:54:14 548
原创 代码随想录算法训练营第二十五天 |216.组合总和III,17.电话号码的字母组合(已补充)
开篇就介绍了本题与77.组合(opens new window)的区别,相对来说加了元素总和的限制,如果做完77.组合(opens new window)再做本题在合适不过。分析完区别,依然把问题抽象为树形结构,按照回溯三部曲进行讲解,最后给出剪枝的优化。相信做完本题,大家对组合问题应该有初步了解了。return res;// 剪枝操作return;return;// 剪枝9 - (k - path.size()) + 1i++) {sum += i;// 回溯// 回溯。
2024-02-08 21:34:34 830
原创 代码随想录算法训练营第二十四天 |回溯算法基础知识,77.组合(已补充)
溯法也可以叫做回溯搜索法,它是一种搜索的方式。在二叉树系列中,我们已经不止一次,提到了回溯,例如二叉树:以为使用了递归,其实还隐藏着回溯(opens new window)。回溯是递归的副产品,只要有递归就会有回溯。所以以下讲解中,回溯函数也就是递归函数,指的都是一个函数。本篇我们讲解了,什么是回溯算法,知道了回溯和递归是相辅相成的。接着提到了回溯法的效率,回溯法其实就是暴力查找,并不是什么高效的算法。然后列出了回溯法可以解决几类问题,可以看出每一类问题都不简单。
2024-02-08 12:01:45 655
自定义日志脱敏组件,简单3 步完成 Spring Boot 的日志脱敏
2022-07-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人