自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Paper daily】Tuning LLMs with Contrastive Alignment Instructions for Machine Translation in Unseen

论文摘要:本文引入了对比对齐指令(AlignInstruct),以应对大规模语言模型(LLMs)上机器翻译(MT)中的两个挑战。通过MT指令(MTInstruct)对模型进行微调是解决第一个挑战的一种直接方法。AlignInstruct通过使用基于统计单词对齐构建的跨语言判别器,强调跨语言监督。作者对BLOOMZ模型(1b1、3b和7b1)在最多24个未见过的语言上进行微调的结果表明:(1)LLMs能够有效地使用MTInstruct翻译未见过的语言;(3)基于判别器的指令在跨语言指令中优于生成型指令;

2024-01-21 14:34:32 333

原创 代码随想录训练营总结篇

这次刷题还是很有收获了,起码我个人觉得对于算法啥的都有一些长进。正好科研进度受挫了,在练习算法上找找成就感,让我度过了心里最难熬的一段时光,而且觉得人也自律了一些,收获还是有的。只能说花了钱就是不一样,虽然不花钱也可以刷题,但是花了钱确实更有动力去刷题。只能说沉没成本的power太高了。

2023-10-10 20:18:35 83

原创 代码随想录 单调栈part3

双指针(dp):想得到最大的矩形,遍历所有元素,以该元素为高,往左右尽可能取最长的宽。取所有的这样的矩形的面积最大值。个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1。单调栈:取雨水时找凹陷,这次相当于找凸起,找所有的凸起中面积最大的凸起。求在该柱状图中,能够勾勒出来的矩形的最大面积。84. 柱状图中最大的矩形。

2023-10-09 19:16:55 100

原创 代码随想录 单调栈part2

从行的角度去看,需要找到一个个凹槽,大的凹槽又有小凹槽,可以将凹槽都归一为底部平坦的凹槽,如果有小凹槽,再计算小凹槽的积水量后,就认为其填上了,这样每一个凹槽都是底部平坦的凹槽,凹槽积水量就是 雨水高度 * 雨水深度,其中雨水高度为min(凹槽左侧高度, 凹槽右侧高度) - 凹槽底部高度,雨水宽度是 凹槽右侧的下标 - 凹槽左侧的下标 - 1。可以使用双指针,当前列的左边最高的柱子可以由前一列的左边最高柱子转移而来,同理列的右边最高的柱子可以由后一列的左边最高柱子转移而来。思路:在后面多续一段。

2023-10-09 19:11:30 188

原创 代码随想录 单调栈 Ⅰ

遍历时的情况:当前天数的温度大于栈头天数温度时,将栈头元素出栈,当前当前天数与栈头天数的差值就是栈头天数的下一个温度出现所需天数,然后继续比较。当前天数温度小于等于栈头天数温度时,将元素入栈,遍历下一天。天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用。这种求数组元素左右的第一个大于小于当前元素的类型,适合用单调栈来做。单调栈的单调属性:单调递增,栈头到栈尾从小到大排列。如果不存在下一个更大元素,那么本次查询的答案是。,表示每天的温度,返回一个数组。496. 下一个更大元素 I。

2023-10-07 20:22:27 74

原创 代码随想录day59

dp[i][j]表示字符串s[i:j+1]的最长回文子序列长度。当s[i]==s[j],dp[i][j] = dp[i+1][j-1] + 2, 如果不等于,则考虑将其中一个放到开头(或结尾)时的最长子序列长度。思路:构建dp数组,dp[i][j]代表s[i:j+1] 是否为回文子串(i<=j)。子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。是字符串中的由连续字符组成的一个序列。

2023-10-06 21:01:30 1673

原创 代码随想录 动态规划 part16

替换一个字符,就是转化为word1[i-1] =word2[j-1]的情况。故此时转移方程为:dp[i][j] = min(dp[i][j-1], dp[i-1][j],dp[i-1][j-1]) + 1。当word1[i-1]==word2[j-1]时,dp[i][j] = dp[i-1][j-1], 当word1[i-1]!= word2[j-1]时,dp[i][j] = min(dp[i][j-1], dp[i-1][j]) + 1, 初始化dp[n][0] = dp[0][n] = n。

2023-10-05 14:15:58 98

原创 代码随想录 动态规划 判断子序列,不同的子序列

思路:动态规划,dp[i][j]定义为,s[:i] 的子序列中t[:j]出现的个数,转移方程为,当s[i-1] == t[j-1]时,dp[i][j] = dp[i-1][j-1](使用s[i-1]匹配t[j-1], 使用之前的元素匹配t[:j-1]) + dp[i-1][j](使用之前的元素匹配t[:j]) ,当s[i-1]!= t[j-1] 时, dp[i][j] = dp[i-1][j](使用之前的某个元素匹配t[j-1])。初始化dp[i][0] = 1,dp[0][j]=0(j>0)

2023-10-04 11:13:31 83

原创 代码随想录 动态规划 14

转移方程为,当 text1[i-1] == text2[j-1] 时,dp[i][j] = dp[i-1][j-1] , 当text1[i-1]!= text2[j-1] 时,dp[i][j] = max(dp[i-1][j], dp[i][j-1]). 因为dp[i][j] 依赖dp[i-1][j], dp[i][j-1],所以用倒序做一维dp不方便。一维dp:使用prev来记录dp[j-1]的原值(相当于dp[i-1][j-1]), curr记录dp[j]的原值(相当于dp[i-1][j])

2023-10-03 11:40:29 100

原创 代码随想录 动态规划 13

思路:由题意得知,子序列是可以删除数组中的元素的,即一段长为s的序列的最长子序列,可能与若干个元素都无关,因此 长度为s的序列的最长子序列的状态依赖于在这之前的所有长度为1,2,3,。思路:设置dp[i][j] 为 nums1 前i -1个元素 和 nums2 前 j -1个元素 的公共最长重复子数组,那么转移方程为 if nums1[i-1] == nums2[j-1] , dp[i][j] = dp[i-1][j-1], 由于dp数组的设置,遍历时由1开始,len(nums1)+1 结束 (左闭右开)

2023-10-02 14:39:55 83

原创 代码随想录 动态规划 12

你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。设计一个算法计算出最大利润。思路:设置为四个状态,持有股票,未持有股票且非冷冻期状态,今日卖出股票,冷冻期。这里的一笔交易指买入持有并卖出股票的整个过程,每笔交易你只需要为支付一次手续费。你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。代表了交易股票的手续费用。思路:在卖出时添上手续费即可。返回获得利润的最大值。

2023-09-28 11:34:18 52

原创 代码随想录 动态规划 11

转移方程为 dp[i][0] = 0,dp[i][1] = max(dp[i-1][0], dp[i-1][0] - price[i]), dp[i][2] = max(dp[i-1][2], dp[i-1][1] + prices[i]) 以此类推 , 初始状态为:dp[i][0] = dp[i][2]=dp[i][4]= 0, dp[i][1] = dp[i][3]= - price[0]你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。设计一个算法来计算你所能获取的最大利润。

2023-09-27 15:36:48 103

原创 代码随想录 动态规划Ⅹ

(2)动态规划:定义dp[i][0]为第i天持有股票时的最大利润,dp[i][1]为第i天不持有股票时 的最大利润。转移方程为 dp[i][0] = max(dp[i - 1][0], dp[i-1][1] - price[i]) dp[i][1] = max(dp[i-1][1], dp[i-1][0] + price[i]思路:贪心:在每一天选择左边的最小值和当前价格,更新二者差的最大值。在每一天,你可以决定是否购买和/或出售股票。设计一个算法来计算你所能获取的最大利润。你也可以先购买,然后在。

2023-09-26 14:59:32 42

原创 代码随想录 动态规划Ⅸ

思路:状态转换机经典题目 dp[i][0]表示第i个房间不偷的最高金额,dp[i]表示第i个房屋偷的最高金额,状态转移方程为 dp[i][0] =max(dp[i-1][1] dp[i-1][0]), dp[i][1] = dp[i-1][0] + nums[i]. 最后返回max(dp[-1][0], dp[-1][1].初始化:dp[0][0] = 0, dp[0][0][1]=nums[0]每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,

2023-09-25 22:36:28 135

原创 代码随想录 动态规划 day46

【代码】代码随想录 动态规划 day46。

2023-09-24 13:53:05 91

原创 代码随想录 动态规划Ⅶ

思路:完全背包,动态数组dp[i]定义 凑成总金额为 i 时所需的最少硬币个数,转移公式为:dp[i] =min(dp[i], dp[i - coins]), 初始dp[0]为0。爬楼梯背包解法:每一次爬的阶数是物品,楼层数是背包容量,排列问题故外层遍历背包容量,内层遍历物品。是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。思路:完全背包,数字是物品,数字的平方是体积。,表示不同面额的硬币;你可以认为每种硬币的数量是无限的。计算并返回可以凑成总金额所需的。的完全平方数的最少数量。

2023-09-22 20:58:59 81

原创 代码随想录 动态规划Ⅶ

思路:经典的完全背包问题,amount时背包容量。硬币为物品的体积和价值.因为是求排列,所以物品放在外面,背包容量放在里面。请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回。思路:与上题一样是多重背包问题,因为是求组合,因此背包容量放在外层,物品放在内层。题目数据保证结果符合 32 位带符号整数。题目数据保证答案符合 32 位整数范围。表示不同面额的硬币,另给一个整数。假设每一种面额的硬币有无限个。

2023-09-22 08:10:20 55

原创 代码随想录 动态规划Ⅴ

思路:可以把这道题看作是二维的01背包,字符串数组的字符串的0和1的个数就是二维的空间。动态规划数组 dp[i][j] 表示 背包容量为 m = i,n = j 时的的最大子集长度,转移方程为 dp = max( dp[i][j], dp[ i - 字符串0的个数, j - 字符串1的个数] + 1)与昨天类似,可以先将所有的数看成正数,那么,每将一个数的符号改为负数,总数就减少到 totalsum - 2nums[i], 这道题目就转换成,通过修改符号使得 totalsum变为target的选择数目。

2023-09-20 12:47:46 140

原创 代码随想录 动态规划Ⅳ

思路:先不看粉碎,先看聚合,如何石头可以聚合成为两块一摸一样的石头,那么粉碎后的质量就为0. 举个例子,两块重量为5的石头可以拆解为113和23两团石头的对碰。因此,可以将目前给的石头堆尽可能地还原成重量相等的两堆石头。参考上一题,这里堆的大小为总量的 二分之一,往里面塞石头,占用的空间和提供的价值都是石头本身的重量。如此一来,就可以转化为01背包问题。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。,然后将它们一起粉碎。假设石头的重量分别为。有一堆石头,用整数数组。

2023-09-19 19:53:40 65

原创 动态规划Ⅲ

假设该头节点为 i ,此时,头节点左侧的数有 i - 1 个,右侧的节点有n- i 个。各自的节点对应着 由 i -1 个节点组成的二叉搜索树和n-i个节点组成的二叉搜索树。那么它们各自的种树的积就是nge节点时的二叉搜索树的种数。dp[i] 的定义为有i个节点时的二叉搜索树的种数。思路:我们可以遍历正整数i之前的所有 j 对于正整数 i 可以拆解成 j + i-j ,那么有以下选择,第一个是 i -j 不再拆分,那么此时的乘积就是 j * (i-j),如果继续拆分,那么就是 j * dp[ i- j]。

2023-09-18 19:20:20 49

原创 动态规划 Ⅱ

思路:dp[i][j] = dp[i-1]dp[j] + dp[ i] + dp[j-1], dp[i][j] = 0 when i=0 or j = 0. dp数组可优化为滚动数组。思路,转移方程与不同路径Ⅰ类似,但是要注意障碍物的存在,dp数组时,对应的位置置为0,且dp数组不会在这个位置上更新。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。网格的左上角 (起始点在下图中标记为 “Start” )。

2023-09-16 10:12:18 213

原创 动态规划 Ⅰ

思路:转移方程 dp[n] = dp[n-1]+dp[n-2], dp[0] = 0, dp[1] = 1, dp[2] = 2。思路:转移方程:dp[n] = min(dp[n-1] +cost[n-1], dp[n-2] +cost[n-2])个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。开始,后面的每一项数字都是前面两项数字的和。你有多少种不同的方法可以爬到楼顶呢?请你计算并返回达到楼梯顶部的最低花费。表示)形成的序列称为。

2023-09-15 09:43:34 38

原创 代码随想录 贪心Ⅵ

思路:叶子结点的父节点放摄像头,所有叶子结点都监控到(树越深结点越多,这样做最省)。然后因为摄像头的父结点也能监控到,所以隔一层装一层摄像头(因为可能有上一层的叶子节点,所以不可以隔两层)。树的结点可以分为三个状态,一个时放置摄像头,一个是被摄像头所覆盖,一个是没有摄像头且没有被覆盖。首先判断是否应该放摄像头,如果左右节点有一个没有被覆盖,那么就需要放摄像头。然后判断是否被覆盖,如果叶子节点有摄像头,那么代表被覆盖。如果不是,则自然地,将非递增的位置减一,然后为了让数字最大,后面的全部变为9。

2023-09-15 09:42:32 33

原创 代码随想录 贪心Ⅴ

思路:首先记录每一个字母的最远位置,然后从左往右遍历,遍历的同时维护一个当前最远距离,表示在该位置之前的字母对应的最远距离。如果遍历的位置恰好为最远距离,则说明该位置为在这之前的所有字母的最远距离的最大值,在这里可以划分一个区间,将区间长度放到answer列表中去。思路:跟打气球一样,属于区间重叠问题,排序后遍历,维护一个当前重叠区间,如果区间不与当前重叠区间有重叠,则将重叠区间添加到answer列表中,然后更新该区间为新的重叠区间。给出一个区间的集合,请合并所有重叠的区间。

2023-09-13 09:50:55 34

原创 代码随想录 贪心Ⅳ

思路: 遍历气球的位置的同时维护最小重叠右边界。如果气球的左边界小于最小重叠右边界,则说明需要多一箭来把它射爆。然后更新最小重叠右边界为该气球的右边界。思路:先按身高排序,高的在前面,矮的在后面。然后从头开始遍历,根据k决定插入的位置。后面插入的因为肯定不会高于前面的元素,所以不会有影响。有一些球形气球贴在一堵用 XY 平面表示的墙面上。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付。处射出一支箭,若有一个气球的直径的开始和结束坐标为。你不知道气球的确切 y 坐标。可以射出的弓箭的数量。

2023-09-12 19:36:09 33

原创 代码随想录 贪心Ⅲ

那么又是一个贪心:局部最优:只找数值最小的正整数进行反转,当前数值和可以达到最大(例如正整数数组{5, 3, 1},反转1 得到-1 比 反转5得到的-5 大多了),全局最优:整个 数组和 达到最大。思路:如果汽车在i点没油,说明汽车在i点出现了[0,i-1]点累积的油都不够的亏空,于是汽车在前i-1个点出发都不会到达终点,那么让汽车在i+1处重新出发。那么如果将负数都转变为正数了,K依然大于0,此时的问题是一个有序正整数序列,如何转变K次正负,让 数组和 达到最大。以这种方式修改数组后,返回数组。

2023-09-11 21:49:17 25

原创 代码随想录 贪心Ⅱ

思路:跳几步不重要,重要的是可以跳几步,即覆盖范围,遍历覆盖范围内寻找下一步更远的覆盖范围,判断最终的覆盖范围能否覆盖终点即可。思路:贪心:只要买卖的利润为正就买卖,没有冷静期和手续费不需要考虑损失。在每一天,你可以决定是否购买和/或出售股票。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标,如果可以,返回。向前跳转的最大长度。生成的测试用例可以到达。你也可以先购买,然后在。处,你可以跳转到任意。给你一个非负整数数组。

2023-09-09 21:27:44 32

原创 代码随想录 贪心Ⅰ

思路:维护一个result变量,当result为正数时,则一直累加,如果result为负数,则清零result。假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。可以通过从原始序列中删除一些(也可以不删除)元素来获得,剩下的元素保持其原始顺序。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。,这是能让孩子们满足胃口的饼干的最小尺寸;思路:大胃口孩子优先吃大饼干,小饼干优先给小胃口孩子。

2023-09-08 21:14:53 30

原创 代码随想录 回溯Ⅵ

需要明确:循环的起始点和终点,进入下一个递归的条件,回溯函数的参数。先看进入下一个递归的条件,每一次递归,都意味着到达了一个新的起点(旧的终点)那么我们需要找到该新起点对应的哪一条边,需要遍历整个列表直到找到新起点为止,由于一个列表可能有多个相同的起点,可以用used数组来标记这条边是否被使用过。思路:将搜索过程看成一棵树,棋盘的行就是树的深度,列就是树的宽度。航线列表的每一个元素就是图的两个点和它们连成的一个有向边,这道题目要做的就是寻找遍历所有点的路径,该路径的起点已经给出,并且需要满足最小行程组合。

2023-09-07 11:06:01 36

原创 代码随想录回溯Ⅴ

思路:排列与集合不同的地方:不需要startindex来指定开始,统一由nums[0]开始遍历。思路:在全排列1的基础上,先排序,然后添加continue的条件,不仅used[i]需要continue,当i > 0,nums[i] 与nums[i-1]相同且。思路:跟子集Ⅱ一样,只是多了判断是否递增的条件,以及不能使用sort和startindex的组合来去重。数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。,找出并返回所有该数组中不同的递增子序列,递增子序列中。

2023-09-05 23:40:04 31

原创 代码随想录 回溯Ⅳ

本题字符串中的数字不可以重复使用,因此可以用startindex标记遍历的起点,在递归时让startindex变为i+1,表示下一个遍历起点在i的后面,其中,i为当前划分点,s[startindex:i + 1]这段字符串为当前划分的符合条件的字符串。如果startindex遍历到最后point_number都不为3,也需要回溯。,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。,用以表示一个 IP 地址,返回所有可能的。返回的解集中,子集可以按。返回该数组所有可能的子集(幂集)。

2023-09-05 11:20:42 22

原创 代码随想录 回溯Ⅲ

如果至少一个数字的被选数量不同,则两种组合是不同的。中的每个数字在每个组合中只能使用。是正着读和反着读都一样的字符串。,并以列表形式返回。分割成一些子串,使每个子串都是。中可以使数字和为目标数。对于给定的输入,保证和为。给定一个候选人编号的集合。解集不能包含重复的组合。中所有可以使数字和为。所有可能的分割方案。

2023-09-04 22:31:13 22

原创 代码随想录 回溯Ⅱ

思路:循环+递归,循环1-9个数字,用startindex记录循环的开始避免组合重复。单层递归处理为将当前遍历的数字添加到path中,终止条件:如果path长度为k,则判断相加之和是否为n,如果是,则将path添加到结果集ans中,如果不是则不做处理。思路:两层遍历+递归,遍历字符串和遍历数字对应的字符。当index为字符串长度,则说明字符串遍历完毕,将path添加到ans中。该列表不能包含相同的组合两次,组合可以以任何顺序返回。的字符串,返回所有它能表示的字母组合。所有可能的有效组合的列表。

2023-09-02 14:25:39 23

原创 代码随想录 回溯Ⅰ

【代码】代码随想录 回溯Ⅰ。

2023-09-01 11:50:34 22

原创 代码随想录 二叉树Ⅸ

由数组构造树的方法:从数组中根据一定规则选取分割点(根节点),然后对左右数组做类似的操作。Python: 遍历二叉搜索树,如果结点值小于low,则左子树都不符合要求,返回修剪后的右子树,如果结点值大于high,则右子树的节点都不符合要求,返回修剪后的左子树。思路:二叉搜索树的中序遍历(左中右),得到的数组为单调递增 ,逆中序遍历(右中左)得到的数组则为单调递减。树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点。通过修剪二叉搜索树,使得所有节点的值在。

2023-08-31 12:10:52 19

原创 代码随想录Day22 二叉树Ⅷ

中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。,新值和原始二叉搜索树中的任意节点值都不同。

2023-08-30 10:27:54 26

原创 代码随想录 二叉树Ⅶ

中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。给你一个含重复值的二叉搜索树(BST)的根节点。Python:利用二叉搜索树性质,进行中序遍历。差值是一个正数,其数值等于两值之差的绝对值。Python: 利用二叉搜索树性质(双指针),找出并返回 BST 中的所有。如果树中有不止一个众数,可以按。给你一个二叉搜索树的根节点。(即,出现频率最高的元素)。

2023-08-29 14:03:45 18

原创 代码随想录 二叉树Ⅵ

想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;返回以该节点为根的子树。如果节点不存在,则返回。null 的节点将直接作为新二叉树的节点。,判断其是否是一个有效的二叉搜索树。合并过程必须从两个树的根节点开始。你需要在 BST 中找到节点值等于。给定二叉搜索树(BST)的根节点。给定一个不重复的整数数组。给你一个二叉树的根节点。返回合并后的二叉树。

2023-08-28 11:42:35 16

原创 代码随想录 二叉树Ⅴ

第五步: 切割preorder数组. 得到preorder数组的左,右半边. (中序数组大小一定跟前序数组大小是相同的.)第二步: 前序遍历的第一个就是当前的中间节点. (后序遍历则为最后一个)第四步: 切割inorder数组. 得到inorder数组的左,右半边.第一步: 特殊情况讨论: 树为空. 或者说是递归终止条件.的路径,这条路径上所有节点值相加等于目标和。路径总和等于给定目标和的路径。,请构造二叉树并返回其根节点。和一个表示目标和的整数。是指没有子节点的节点。是指没有子节点的节点。

2023-08-26 14:14:33 16

原创 代码随想录 二叉树Ⅳ

返回所有左叶子之和。(左叶子:当某个节点左孩子为叶子节点是,该左孩子为左叶子)给定一个二叉树,判断它是否是高度平衡的二叉树。的左右两个子树的高度差的绝对值不超过 1。,返回所有从根节点到叶子节点的路径。Python: 递归(后序遍历)给你一个二叉树的根节点。是指没有子节点的节点。Python: 迭代。

2023-08-25 16:33:19 40 1

空空如也

空空如也

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

TA关注的人

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