- 博客(57)
- 收藏
- 关注
原创 2025windows系统40系英伟达GPU显卡Pytorch环境配置(base:py3.8)
WIn+S 搜索NVIDIA Control Panel -> 左下角点击系统信息 -> 上面点击组件 -> 3D设置中NVCUDA64.DLL的产品名称,数字即为系统支持的cuda版本的最高的版本号。Win+R 输入cmd -> 输入nvidia-smi -> 查看 CUDA Version,数字即为系统支持的cuda版本的最高的版本号。,修改后的指令最后的cu118改为你的CUDA版本号(无小数点,如CUDA 12.4 为cu124)(比如CUDA 12.4),找到对应指令复制下来,
2025-09-21 16:15:10
534
2
原创 代码随想录算法训练营第六十七天 | 总结篇
但是自从报了训练营之后我学习效率也变得提高了,每天晚上都会抽出一小段时间去学习算法,至少算是有个监督把,虽然快到后期学校课程变多以及实验室的项目压力等方面因素减少了打卡的总结性语言,但还是抽出空来看一眼题目、思路和解法,对我来说是收获颇丰的,相当于从0~1的开始。
2024-11-18 21:28:06
177
原创 代码随想录算法训练营第六十六天 | Floyd 算法精讲 、A * 算法精讲 (A star算法)
接下来的 n 行,每行包含四个整数 a1, a2, b1, b2,分别表示骑士的起始位置 (a1, a2) 和目标位置 (b1, b2)。小明喜欢去公园散步,公园内布置了许多的景点,相互之间通过小路连接,小明希望在观看景点的同时,能够节省体力,走最短的路径。接下来的 M 行,每行包含三个整数 u, v, w,表示景点 u 和景点 v 之间有一条长度为 w 的双向道路。接下来的 Q 行,每行包含两个整数 start, end,表示一个观景计划的起点和终点。接下里的一行包含一个整数 Q,表示观景计划的数量。
2024-11-15 21:53:57
404
原创 代码随想录算法训练营第六十五天 | Bellman_ford 队列优化算法(又名SPFA)、bellman_ford之判断负权回路、bellman_ford之单源有限最短路
输出一个整数,表示从城市 src 到城市 dst 的最低运输成本,如果无法在给定经过城市数量限制下找到从 src 到 dst 的路径,则输出 "unreachable",表示不存在符合条件的运输方案。某国为促进城市间经济交流,决定对货物运输提供补贴。共有 n 个编号为 1 到 n 的城市,通过道路网络连接,网络中的道路仅允许从某个城市单向通行到另一个城市,不能反向通行。共有 n 个编号为 1 到 n 的城市,通过道路网络连接,网络中的道路仅允许从某个城市单向通行到另一个城市,不能反向通行。
2024-11-14 21:35:36
282
原创 代码随想录算法训练营第六十四天 | dijkstra(堆优化版)精讲、Bellman_ford 算法精讲
共有 n 个编号为 1 到 n 的城市,通过道路网络连接,网络中的道路仅允许从某个城市单向通行到另一个城市,不能反向通行。接下来为 M 行,每行包括三个整数,S、E 和 V,代表了从 S 车站可以单向直达 E 车站,并且需要花费 V 单位的时间。接下来为 m 行,每行包括三个整数,s、t 和 v,表示 s 号城市运输货物到达 t 号城市,道路权值为 v(单向图)。如下图所示,起始车站为 1 号车站,终点车站为 7 号车站,绿色路线为最短的路线,路线总长度为 12,则输出 12。
2024-11-14 21:31:34
219
原创 代码随想录算法训练营第六十三天 | 拓扑排序、dijkstra朴素版
某个大型软件项目的构建系统拥有 N 个文件,文件编号从 0 到 N - 1,在这些文件中,某些文件依赖于其他文件的内容,这意味着如果文件 A 依赖于文件 B,则必须在处理文件 A 之前处理文件 B (0 <= A, B <= N - 1)。接下来为 M 行,每行包括三个整数,S、E 和 V,代表了从 S 车站可以单向直达 E 车站,并且需要花费 V 单位的时间。后续 M 行,每行两个正整数 S 和 T,表示 T 文件依赖于 S 文件。输出共一行,如果能处理成功,则输出文件顺序,用空格隔开。
2024-11-12 21:56:08
308
原创 代码随想录算法训练营第六十二天 | prim算法、kruskal算法
第一行包含两个整数V 和 E,V代表顶点数,E代表边数。顶点编号是从1到V。例如:V=2,一个有两个顶点,分别是1和2。在世界的某个区域,有一些分散的神秘岛屿,每个岛屿上都有一种珍稀的资源或者宝藏。接下来共有 E 行,每行三个整数 v1,v2 和 val,v1 和 v2 为边的起点和终点,val代表边的权值。不同岛屿之间,路途距离不同,国王希望你可以规划建公路的方案,如何可以以最短的总公路距离将 所有岛屿联通起来。给定一张地图,其中包括了所有的岛屿,以及它们之间的距离。2. kruskal算法。
2024-11-12 21:51:34
186
原创 聊聊和AutoDL的故事
代码跑起来后可以等待结果了,如过中间需要有什么操作,可以通过AutoDL网站直接进入,无论在哪里还是什么设备平台,只要有网你就可以随意查看运行的过程,这种便捷性是普通的台式无法比拟的,正如此我才选择了AutoDL平台,相信各位如果有需求可以尝试AutoDL,一定不会让你失望的。一开始看到如此多的算力服务器我直接全部都逛了一遍,对于学生党来说一开始可以选择配置稍微低一点的显卡,在熟悉了如何操作之后可以选择算力比较高的显卡,这样可以把钱花在刀刃上。图 4:Jupyter Lab 界面。
2024-11-12 15:42:50
503
原创 代码随想录算法训练营第六十天 | 108.冗余连接 、109.冗余连接II
该树除了根节点之外的每一个节点都有且只有一个父节点,而根节点没有父节点。输入一个有向图,该图由一个有着 n 个节点(节点编号 从 1 到 n),n 条边,请返回一条可以删除的边,使得删除该条边之后该有向图可以被当作一颗有向树。图中的 1 2,2 3,1 3 等三条边在删除后都能使原图变为一棵合法的树。现在在这棵树上的基础上,添加一条边(依然是n个节点,但有n条边),使这个图变成了有环图,如图。输出一条可以删除的边,若有多条边可以删除,请输出标准输入中最后出现的一条边。输出一条可以删除的边。
2024-11-09 22:01:39
363
原创 代码随想录算法训练营第五十九天 | 107. 寻找存在的路径
输出一个整数,代表是否存在从节点 source 到节点 destination 的路径。你的任务是判断是否有一条从节点 source 出发到节点 destination 的路径存在。最后一行包含两个正整数,代表起始节点 source 和目标节点 destination。后续 M 行,每行两个正整数 s 和 t,代表从节点 s 与节点 t 之间有一条边。给定一个包含 n 个节点的无向图中,节点编号从 1 到 n (含 1 和 n )。第一行包含两个正整数 N 和 M,N 代表节点的个数,M 代表边的个数。
2024-11-09 21:59:15
240
原创 代码随想录算法训练营第五十八天 | 110.字符串接龙、105.有向图的完全可达性、106.岛屿的周长
给你两个字符串 beginStr 和 endStr 和一个字典 strList,找到从 beginStr 到 endStr 的最短转换序列中的字符串数目。给定一个有向图,包含 N 个节点,节点编号分别为 1,2,...,N。现从 1 号节点开始,如果可以从 1 号节点的边可以到达任何节点,则输出 1,否则输出 -1。给定一个由 1(陆地)和 0(水)组成的矩阵,岛屿是被水包围,并且通过水平方向或垂直方向上相邻的陆地连接而成的。如果可以从 1 号节点的边可以到达任何节点,则输出 1,否则输出 -1。
2024-11-08 21:30:01
329
原创 代码随想录算法训练营第五十七天 | 101. 孤岛的总面积、102.沉没孤岛 、103.水流问题 、104.建造最大岛屿
给定一个由 1(陆地)和 0(水)组成的矩阵,岛屿指的是由水平或垂直方向上相邻的陆地单元格组成的区域,且完全被水域单元格包围。给定一个由 1(陆地)和 0(水)组成的矩阵,岛屿指的是由水平或垂直方向上相邻的陆地单元格组成的区域,且完全被水域单元格包围。给定一个由 1(陆地)和 0(水)组成的矩阵,你最多可以将矩阵中的一格水变为一块陆地,在执行了此操作之后,矩阵中最大的岛屿面积是多少。输出共有多行,每行输出两个整数,用一个空格隔开,表示可达第一组边界和第二组边界的单元格的坐标,输出顺序任意。
2024-11-08 21:23:21
410
原创 代码随想录算法训练营第五十六天 | 99. 岛屿数量(dfs)、bfs
给定一个由 1(陆地)和 0(水)组成的矩阵,计算岛屿的最大面积。岛屿面积的计算方式为组成岛屿的陆地的总数。岛屿由水平方向或垂直方向上相邻的陆地连接而成,并且四周都是水域。给定一个由 1(陆地)和 0(水)组成的矩阵,你需要计算岛屿的数量。岛屿由水平方向或垂直方向上相邻的陆地连接而成,并且四周都是水域。后续 N 行,每行包含 M 个数字,数字为 1 或者 0,表示岛屿的单元格。输出一个整数,表示岛屿的最大面积。后续 N 行,每行包含 M 个数字,数字为 1 或者 0。输出一个整数,表示岛屿的数量。
2024-11-07 21:14:51
167
原创 代码随想录算法训练营第五十五天 | 98. 所有可达路径
给定一个有 n 个节点的有向无环图,节点编号从 1 到 n。请编写一个函数,找出并返回所有从节点 1 到节点 n 的路径。有五个节点,其中的从 1 到达 5 的路径有两个,分别是 1 -> 3 -> 5 和 1 -> 2 -> 4 -> 5。输出所有的可达路径,路径中所有节点的后面跟一个空格,每条路径独占一行,存在多条路径,路径输出的顺序可任意。后续 M 行,每行包含两个整数 s 和 t,表示图中的 s 节点与 t 节点中有一条路径。第一行包含两个整数 N,M,表示图中拥有 N 个节点,M 条边。
2024-11-04 22:10:13
303
原创 代码随想录算法训练营第五十三天 | 42. 接雨水 、84.柱状图中最大的矩形
给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1。求在该柱状图中,能够勾勒出来的矩形的最大面积。
2024-11-04 22:02:34
232
原创 代码随想录算法训练营第五十二天 | 739. 每日温度、496.下一个更大元素 I、503.下一个更大元素II
数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。输入: nums1 = [4,1,2], nums2 = [1,3,4,2].输入: nums1 = [2,4], nums2 = [1,2,3,4].输出: [-1,3,-1]输出: [3,-1]
2024-11-02 22:45:47
1474
原创 代码随想录算法训练营第五十一天 | 647. 回文子串 、 516.最长回文子序列 、
给定一个字符串 s ,找到其中最长的回文子序列,并返回该序列的长度。可以假设 s 的最大长度为 1000。示例 1: 输入: "bbbab" 输出: 4 一个可能的最长回文子序列为 "bbbb"。示例 2: 输入:"cbbd" 输出: 2 一个可能的最长回文子序列为 "bb"。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。提示:输入的字符串长度不会超过 1000。
2024-11-01 21:53:58
270
原创 代码随想录算法训练营第五十天 | 115.不同的子序列、583. 两个字符串的删除操作、 72. 编辑距离
解释: intention -> inention (删除 't') inention -> enention (将 'i' 替换为 'e') enention -> exention (将 'n' 替换为 'x') exention -> exection (将 'n' 替换为 'c') exection -> execution (插入 'u')解释: horse -> rorse (将 'h' 替换为 'r') rorse -> rose (删除 'r') rose -> ros (删除 'e')
2024-11-01 21:51:46
339
原创 代码随想录算法训练营第四十九天 | 1143.最长公共子序列、1035.不相交的线、53. 最大子序和、392.判断子序列
(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。例如,"ace" 是 "abcde" 的子序列,但 "aec" 不是 "abcde" 的子序列。现在,我们可以绘制一些连接两个数字 A[i] 和 B[j] 的直线,只要 A[i] == B[j],且我们绘制的直线不与任何其他连线(非水平线)相交。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。// result 保存dp[i]的最大值。
2024-10-31 22:04:03
524
原创 代码随想录算法训练营第四十八天 | 300.最长递增子序列、674.最长连续递增序列、718. 最长重复子数组
连续递增的子序列 可以由两个下标 l 和 r(l < r)确定,如果对于每个 l <= i < r,都有 nums[i] < nums[i + 1] ,那么子序列 [nums[l], nums[l + 1], ..., nums[r - 1], nums[r]] 就是连续递增子序列。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。给定一个未经排序的整数数组,找到最长且 连续递增的子序列,并返回该序列的长度。给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。
2024-10-31 21:36:37
391
原创 代码随想录算法训练营第四十六天 | 188.买卖股票的最佳时机IV、309.最佳买卖股票时机含冷冻期 、714.买卖股票的最佳时机含手续费
输出:7 解释:在第 2 天 (股票价格 = 2) 的时候买入,在第 3 天 (股票价格 = 6) 的时候卖出, 这笔交易所能获得利润 = 6-2 = 4。随后,在第 5 天 (股票价格 = 0) 的时候买入,在第 6 天 (股票价格 = 3) 的时候卖出, 这笔交易所能获得利润 = 3-0 = 3。输出:2 解释:在第 1 天 (股票价格 = 2) 的时候买入,在第 2 天 (股票价格 = 4) 的时候卖出,这笔交易所能获得利润 = 4-2 = 2。输入:k = 2, prices = [2,4,1]
2024-10-27 15:23:05
288
原创 代码随想录算法训练营第四十五天 | 121. 买卖股票的最佳时机 、 122.买卖股票的最佳时机II 、 123.买卖股票的最佳时机III
输出:6 解释:在第 4 天(股票价格 = 0)的时候买入,在第 6 天(股票价格 = 3)的时候卖出,这笔交易所能获得利润 = 3-0 = 3。输出:4 解释:在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4。解释: 在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4。输入:prices = [3,3,5,0,0,3,1,4]
2024-10-25 22:07:02
310
原创 代码随想录算法训练营第四十四天 | 198.打家劫舍、213.打家劫舍II 、337.打家劫舍III
你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。
2024-10-24 21:39:51
1740
原创 代码随想录算法训练营第四十三天 | 322. 零钱兑换、 279.完全平方数、139.单词拆分
编写一个函数来计算可以凑成总金额所需的最少的硬币个数。完全平方数 是一个整数,其值等于另一个整数的平方;例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。给你一个整数 n ,返回和为 n 的完全平方数的 最少数量。
2024-10-23 21:01:10
439
原创 代码随想录算法训练营第四十二天 | 完全背包、518. 零钱兑换 II、377. 组合总和 Ⅳ、70. 爬楼梯 (进阶)
所有可能的组合为: (1, 1, 1, 1) (1, 1, 2) (1, 2, 1) (1, 3) (2, 1, 1) (2, 2) (3, 1)当 m = 2,n = 3 时,n = 3 这表示一共有三个台阶,m = 2 代表你每次可以爬一个台阶或者两个台阶。第i件物品的重量是weight[i],得到的价值是value[i]。每次你可以爬至多m (1 <= m < n)个台阶。给定一个由正整数组成且不存在重复数字的数组,找出和为给定目标正整数的组合的个数。输出描述:输出一个整数,表示爬到楼顶的方法数。
2024-10-22 20:59:33
396
原创 代码随想录算法训练营第四十一天 | 1049. 最后一块石头的重量 II 、 494. 目标和 、 474.一和零
解释:最多有 5 个 0 和 3 个 1 的最大子集是 {"10","0001","1","0"} ,因此答案是 4。其他满足题意但较小的子集包括 {"0001","1"} 和 {"10","1","0"}。输入:strs = ["10", "0001", "111001", "1", "0"], m = 5, n = 3。for (string str : strs) { // 遍历物品。
2024-10-21 21:40:12
435
原创 代码随想录算法训练营第三十八天 | 动态规划:01背包理论基础、416. 分割等和子集
1. 题目:小明是一位科学家,他需要参加一场重要的国际科学大会,以展示自己的最新研究成果。他需要带一些研究材料,但是他的行李箱空间有限。这些研究材料包括实验设备、文献资料和实验样本等等,它们各自占据不同的空间,并且具有不同的价值。小明的行李空间为 N,问小明应该如何抉择,才能携带最大价值的研究材料,每种研究材料只能选择一次,并且只有选与不选两种选择,不能进行切割。
2024-10-20 23:02:49
524
原创 代码随想录算法训练营第三十八天 | 62. 不同路径、63. 不同路径 II、343. 整数拆分、96.不同的二叉搜索树(343、96以后学)
if (obstacleGrid[m - 1][n - 1] == 1 || obstacleGrid[0][0] == 1) //如果在起点或终点出现了障碍,直接返回0。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。机器人试图达到网格的右下角(在下图中标记为“Finish”)。一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。网格的左上角 (起始点在下图中标记为 “Start” )。网格中的障碍物和空位置分别用 1 和 0 来表示。
2024-10-18 21:43:08
592
原创 代码随想录算法训练营第三十七天 | 509. 斐波那契数 、 70. 爬楼梯 、746. 使用最小花费爬楼梯
该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) = 0,F(1) = 1 F(n) = F(n - 1) + F(n - 2),其中 n > 1 给你n ,请计算 F(n)。数组的每个下标作为一个阶梯,第 i 个阶梯对应着一个非负数的体力花费值 cost[i](下标从 0 开始)。每当你爬上一个阶梯你都要花费对应的体力值,一旦支付了相应的体力值,你就可以选择向上爬一个阶梯或者爬两个阶梯。在开始时,你可以选择从下标为 0 或 1 的元素作为初始阶梯。
2024-10-17 18:42:21
296
原创 代码随想录算法训练营第三十六天 | 56. 合并区间、738.单调递增的数字、968.监控二叉树(hard)
/ left == 1 && right == 0 左节点有摄像头,右节点无覆盖。// left == 0 && right == 1 左节点有无覆盖,右节点摄像头。// left == 1 && right == 2 左节点有摄像头,右节点有覆盖。// left == 2 && right == 1 左节点有覆盖,右节点有摄像头。// left == 0 && right == 2 左节点无覆盖,右节点覆盖。// left == 2 && right == 0 左节点覆盖,右节点无覆盖。
2024-10-16 20:32:55
771
原创 代码随想录算法训练营第三十五天 | 452. 用最少数量的箭引爆气球、 435. 无重叠区间、763.划分字母区间
在坐标 x 处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xend, 且满足 xstart ≤ x ≤ xend,则该气球会被引爆。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。给你一个数组 points ,其中 points [i] = [xstart,xend] ,返回引爆所有气球所必须射出的最小弓箭数。注意: 可以认为区间的终点总是大于它的起点。## 右边气球判断的范围通过找右边和上一个的最小值来确定,并且else中当前的右边值会被上一个最小的值替换。
2024-10-15 20:03:34
430
原创 代码随想录算法训练营第三十四天 | 134. 加油站、135. 分发糖果、860. 柠檬水找零、406.根据身高重建队列
你无法返回 2 号加油站,因为返程需要消耗 4 升汽油,但是你的油箱只有 3 升汽油。每个 people[i] = [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人。返回的队列应该格式化为数组 queue ,其中 queue[j] = [hj, kj] 是队列中第 j 个人的属性(queue[0] 是排在队列前面的人)。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。
2024-10-14 23:37:08
641
原创 代码随想录算法训练营第三十二天 | 122.买卖股票的最佳时机II、55. 跳跃游戏、45.跳跃游戏 II、1005.K次取反后最大化的数组和
给定一个整数数组 A,我们只能用以下方法修改该数组:我们选择某个索引 i 并将 A[i] 替换为 -A[i],然后总共重复这个过程 K 次。给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。你的目标是使用最少的跳跃次数到达数组的最后一个位置。给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。说明: 假设你总是可以到达数组的最后一个位置。
2024-10-12 23:59:30
338
原创 代码随想录算法训练营第三十一天 | 455.分发饼干、376. 摆动序列、53. 最大子序和
如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。例如, [1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3) 是正负交替出现的。相反, [1,4,7,2,5] 和 [1,7,4,5,5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。给定一个整数序列,返回作为摆动序列的最长子序列的长度。if (index >= 0 && s[index] >= g[i]) { // 遍历饼干。
2024-10-11 22:47:31
434
原创 代码随想录算法训练营第三十天 | 491.递增子序列、46.全排列、47.全排列 II
/ 时间复杂度: 最差情况所有元素都是唯一的。// path里已经收录的元素,直接跳过。// 记录这个元素在本层用过了,本层后面不能再用了。// used[i - 1] == false,说明同一树层nums[i - 1]使用过。// used[i - 1] == true,说明同一树枝nums[i - 1]使用过。// 如果同一树层nums[i - 1]使用过则直接跳过。// 空间复杂度: O(n) 回溯树的深度取决于我们有多少个元素。
2024-10-11 22:39:32
545
原创 代码随想录算法训练营第二十九天 | 93.复原IP地址、78.子集、90.子集II
示例: 输入: nums = [1,2,3] 输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ]if (isValid(s, startIndex, i)) { // 判断 [startIndex,i] 这个区间的子串是否合法。if (s[i] > '9' || s[i] < '0') { // 遇到非数字字符不合法。if (startIndex >= nums.size()) { // 终止条件可以不加。
2024-10-10 23:21:39
825
原创 代码随想录算法训练营第二十八天 | 39. 组合总和、40.组合总和II、131.分割回文串
/ 和39.组合总和的区别1,这里是i+1,每个数字在每个组合中只能使用一次。// used[i - 1] == false,说明同一树层candidates[i - 1]使用过。// used[i - 1] == true,说明同一树枝candidates[i - 1]使用过。if (isPalindrome(s, startIndex, i)) { // 是回文子串。// 寻找i+1为起始位置的子串。示例: 输入: "aab" 输出: [ ["aa","b"], ["a","a","b"] ]
2024-10-10 23:15:50
655
原创 代码随想录算法训练营第二十七天 | 第77题. 组合、216.组合总和III、17.电话号码的字母组合
void getCombinations(const string& digits, int index, const string& s) { // 注意参数的不同。示例: 输入: n = 4, k = 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ]// 如果path.size() == k 但sum!
2024-10-09 23:11:52
407
原创 代码随想录算法训练营第二十六天 | 669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树
通过修剪二叉搜索树,使得所有节点的值在[L, R]中 (R>=L)。你可能需要改变树的根节点,所以结果应当返回修剪好的二叉搜索树的新的根节点。给出二叉搜索树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。节点的左子树仅包含键 小于 节点键的节点。节点的右子树仅包含键 大于 节点键的节点。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。
2024-10-09 22:17:20
372
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅