leecode
王俊超_
这个作者很懒,什么都没留下…
展开
-
277.搜寻名人
题目描述假设你是一个专业的狗仔,参加了一个 n 人派对,其中每个人被从 0 到 n - 1 标号。在这个派对人群当中可能存在一位 “名人”。所谓 “名人” 的定义是:其他所有 n - 1 个人都认识他/她,而他/她并不认识其他任何人。现在你想要确认这个 “名人” 是谁,或者确定这里没有 “名人”。而你唯一能做的就是问诸如 “A 你好呀,请问你认不认识 B呀?” 的问题,以确定 A 是否认识 B。你需要在(渐近意义上)尽可能少的问题内来确定这位 “名人” 是谁(或者确定这里没有 “名人”)。在本题中,你原创 2020-08-21 12:23:39 · 166 阅读 · 0 评论 -
122. 买卖股票的最佳时机 II
题目描述给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价原创 2020-08-20 16:58:03 · 96 阅读 · 0 评论 -
213. 打家劫舍 II
题目描述你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [2,3,2]输出: 3解释: 你不能先偷窃 1 号房屋(金额 = 2),然后偷窃 3 号房屋(金额 = 2), 因为他们是相邻的。示例原创 2020-08-20 16:38:22 · 76 阅读 · 0 评论 -
198. 打家劫舍
题目描述你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4 。示例 2:输入:[2,7原创 2020-08-20 16:21:54 · 83 阅读 · 0 评论 -
一个环,有n个点, 问从0点出发,经过k步回到原点有多少种方法(字节面试题,java解法)
题目描述一个环上有10个点,编号为0-9,从0点出发,每步可以顺时针到下一个点,也可以逆时针到上一个点,求:经过n步又回到0点有多少种不同的走法?举例如果n=1,则从0出发只能到1或者9,不可能回到0,共0种走法如果n=2,则从0出发有4条路径:0->1->2, 0->1->0, 0->9->8, 0->9->0,其中有两条回到了0点,故一共有2种走法动态规划状态方程为:d(k, j) = d(k-1, j-1) + d(k-1, j+1);由于原创 2020-08-11 16:33:04 · 3302 阅读 · 0 评论 -
134. 加油站
题目描述在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明:如果题目有解,该答案即为唯一答案。输入数组均为非空数组,且长度相同。输入数组中的元素均为非负数。示例 1:输入:gas = [1,2,3,4,5]cost = [3,4,5,1,2]原创 2020-08-10 17:21:29 · 92 阅读 · 0 评论 -
3.无重复字符的最长字串
题目描述给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。方法原创 2020-08-10 16:03:51 · 86 阅读 · 0 评论 -
59. 螺旋矩阵 II
题目描述给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例:输入: 3输出:[[ 1, 2, 3 ],[ 8, 9, 4 ],[ 7, 6, 5 ]]模拟class Solution { public int[][] generateMatrix(int n) { int[][] ans = new int[n][n]; int l=0,r=n-1,u=0,d=n-1,num=1;原创 2020-08-10 14:54:32 · 72 阅读 · 0 评论 -
105.从前序与中序遍历序列构造二叉树
题目描述根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树:解法一:递归+哈希先将inorder存入哈希表中,方便查找调用创建二叉树函数利用preorder设置根节点,在inorder找到根节点,区分左右子树找出左右子树的起点终点分别调用左右子树class Solution { public原创 2020-08-09 20:48:57 · 156 阅读 · 0 评论 -
113. 路径总和 II
题目描述题解一:dfs+回溯class Solution { List<List<Integer>> list; List<Integer> temp; public List<List<Integer>> pathSum(TreeNode root, int sum) { list = new ArrayList(); temp = new ArrayList();原创 2020-08-09 20:15:20 · 67 阅读 · 0 评论 -
112. 路径总和(java)
题目描述给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ \ 7 2 1返回 true, 因为存在目标和为 22 的根节点到叶子节点的路径 5->4-&原创 2020-08-09 17:44:39 · 218 阅读 · 0 评论 -
124. 二叉树中的最大路径和
题目描述给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。示例 1:输入: [1,2,3] 1 / \ 2 3输出: 6示例 2:输入: [-10,9,20,null,null,15,7] -10 / \ 9 20 / \ 15 7输出: 42递归 a / \ b c有三种路径情况a+b+c //对应 max =原创 2020-08-09 16:33:40 · 83 阅读 · 0 评论 -
222. 完全二叉树的节点个数(java)
题目描述给出一个完全二叉树,求出该树的节点个数。说明:完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。示例:输入:1/ 2 3/ \ /4 5 6输出: 6解法一:暴力public int countNodes(TreeNode root) { if (root == null){ return 0;原创 2020-08-07 16:51:06 · 307 阅读 · 0 评论 -
103.二叉树的锯齿形层次遍历(java)
题目描述给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:给定二叉树 [3,9,20,null,null,15,7],返回锯齿形层次遍历如下:[[3],[20,9],[15,7]]...原创 2020-08-07 13:40:38 · 139 阅读 · 0 评论 -
面试题 02.05. 链表求和(正序)(java)
题目描述给定两个用链表表示的整数,每个节点包含一个数位。这些数位是反向存放的,也就是个位排在链表首部。编写函数对这两个整数求和,并用链表形式返回结果。示例:输入:(7 -> 1 -> 6) + (5 -> 9 -> 2),即617 + 295输出:2 -> 1 -> 9,即912进阶:假设这些数位是正向存放的,请再做一遍。示例:输入:(6 -> 1 -> 7) + (2 -> 9 -> 5),即617 + 295输出:9 -&g原创 2020-08-07 12:15:59 · 243 阅读 · 0 评论 -
25. K 个一组翻转链表(java)
题目描述给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。示例:给你这个链表:1->2->3->4->5当 k = 2 时,应当返回: 2->1->4->3->5当 k = 3 时,应当返回: 3->2->1->4->5说明:你的算法只能使用常数的额外空间。你不能只是单纯的改变节点内部的值,原创 2020-08-07 11:53:36 · 318 阅读 · 0 评论 -
225.用队列实现栈(java)
225.用队列实现栈题目描述使用队列实现栈的下列操作:push(x) – 元素 x 入栈pop() – 移除栈顶元素top() – 获取栈顶元素empty() – 返回栈是否为空注意:你只能使用队列的基本操作-- 也就是 push to back, peek/pop from front, size, 和 is empty 这些操作是合法的。你所使用的语言也许不支持队列。 你可以使用 list 或者 deque(双端队列)来模拟一个队列 , 只要是标准的队列操作即可。你可以假设所有操作都原创 2020-07-28 18:49:03 · 166 阅读 · 0 评论 -
剑指 Offer 09. 用两个栈实现队列
题目描述用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:[“CQueue”,“appendTail”,“deleteHead”,“deleteHead”][[],[3],[],[]]输出:[null,null,3,-1]示例 2:输入:[“CQueue”,“deleteHead”,“appendTail原创 2020-07-28 18:28:58 · 83 阅读 · 0 评论 -
215.数组中的第K最大元素
题目描述在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明:你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。解法一:暴力排序解法二:快排利用快排的性质, 每次都能将枢轴放入正确位置等于,返回nums[index]若大于,则从左边找若原创 2020-07-27 20:05:13 · 57 阅读 · 0 评论 -
滑动窗口专题(字节面试题)
**关键字:**连续数组/字串1.和为s的连续正整数序列(剑指offer57-II)输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。示例 1:输入:target = 9输出:[[2,3,4],[4,5]]滑动窗口:窗口左右两端都只能向右移动,当和小于sum时,j++,和大于sum时,i++,和等于sum就记录下窗口中i —j 中的序列,然后窗口继续后移,查找下一个满足条件的序列。clas原创 2020-07-27 17:02:52 · 1323 阅读 · 1 评论 -
567. 字符串的排列(java)
题目描述给定两个字符串 s1 和 s2,写一个函数来判断 s2 是否包含 s1 的排列。换句话说,第一个字符串的排列之一是第二个字符串的子串。示例1:输入: s1 = “ab” s2 = “eidbaooo”输出: True解释: s2 包含 s1 的排列之一 (“ba”).示例2:输入: s1= “ab” s2 = “eidboaoo”输出: False注意:输入的字符串只包含小写字母两个字符串的长度都在 [1, 10,000] 之间解法一:滑动窗口2个字符串的排列 相等 -原创 2020-07-27 16:42:40 · 309 阅读 · 0 评论 -
剑指 Offer 38. 字符串的排列(java)
题目描述输入一个字符串,打印出该字符串中字符的所有排列。你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。示例:输入:s = “abc”输出:[“abc”,“acb”,“bac”,“bca”,“cab”,“cba”]限制:1 <= s 的长度 <= 8题解:回溯法排序方案:重复方案与剪枝:递归解析:终止条件: 当 x = len© - 1x=len©−1 时,代表所有位已固定(最后一位只有 11 种情况),则将当前组合 c 转化为字符串并加入 res,并返原创 2020-07-27 14:47:28 · 270 阅读 · 1 评论 -
双指针解决有序数组问题(字节面试题)
1.排序数组,平方后,数组当中有多少不同的数字(相同算一个)。如果不是排序数组,可以使用hashset来保存数字的平方,重复就存不进去,那么最后就可以直接返回set的大小size即可。时间空间复杂度都是O(n)。双指针遍历:这里是排序数组,既然有重复,肯定是有负数,0,1这些数字。平方后两头大,中间小,可以用首尾指针共同向中间扫描,扫描时去掉重复元素,同时用一个sum来记录有多少个不同数字。时间复杂度O(N),空间复杂度O(1)。public int diffSquareNum(int nums[]原创 2020-07-27 11:09:58 · 720 阅读 · 0 评论 -
860. 柠檬水找零(java)
题目描述在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。注意,一开始你手头没有任何零钱。如果你能给每位顾客正确找零,返回 true ,否则返回 false 。示例 1:输入:[5,5,5,10,20]输出:true解释:前 3 位顾客那里,我们按顺序收取 3 张 5 美元的钞票。原创 2020-07-27 09:32:17 · 175 阅读 · 0 评论 -
股票问题专题(动态规划/状态机)
思路:一、穷举框架for 状态1 in 状态1的所有取值: for 状态2 in 状态2的所有取值: for ... dp[状态1][状态2][...] = 择优(选择1,选择2...)这个问题的「状态」有三个,第一个是天数,第二个是允许交易的最大次数,第三个是当前的持有状态(即之前说的 rest 的状态,我们不妨用 1 表示持有,0 表示没有持有)。然后我们用一个三维数组就可以装下这几种状态的全部组合:dp[i][k][0 or 1]0 <原创 2020-07-26 23:17:07 · 155 阅读 · 0 评论 -
343. 整数拆分(java)
题目描述给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1。示例 2:输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。说明: 你可以假设 n 不小于 2 且不大于 58。解法一:分类讨论/数学推导将n分成3*3……的结构,此时最后剩下的余数若为0,则不用处理其他处理若为1,将1加入到最后一次3,即最后乘原创 2020-07-26 17:27:22 · 1080 阅读 · 0 评论 -
221.最大正方形(java)
题目描述在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。示例:输入:1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0输出: 4解法一:动态规划图 1:受限于左上的 0图 2:受限于上边的 0图 3:受限于左边的 0数字表示:以此为正方形右下角的最大边长黄色表示:格子 ? 作为右下角的正方形区域状态方程:if (grid[i - 1][j - 1] == '1') { dp[i][j] = min(dp[i原创 2020-07-26 16:40:07 · 474 阅读 · 0 评论 -
416. 分割等和集(java)
题目描述给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。注意:每个数组中的元素不会超过 100数组的大小不会超过 200示例 1:输入: [1, 5, 11, 5]输出: true解释: 数组可以分割成 [1, 5, 5] 和 [11].示例 2:输入: [1, 2, 3, 5]输出: false解释: 数组不能分割成两个元素和相等的子集.解法一:动态规划0-1背包:选取物品的容积总量不能超过规定的总量。思路是:物品一个个先,容量也原创 2020-07-17 11:09:05 · 206 阅读 · 0 评论 -
31.下一个排列
31.下一个排列题目描述实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1题解:一遍扫描从后往前找到第一个逆序值索引i,找到最小的超过当前逆序值的值索引j。交换i,j位置逆转i+1,n 。(若原创 2020-06-08 10:58:06 · 88 阅读 · 0 评论 -
146. LRU缓存机制(java)
146. LRU缓存机制题目描述运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果关键字 (key) 存在于缓存中,则获取关键字的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字/值」。当缓存容量达到上限时,它应该在写入新数据之前删除最久未使用的数据值,从而为新的数据值留出原创 2020-06-08 10:12:20 · 197 阅读 · 0 评论 -
560. 和为K的子数组
560. 和为K的子数组题目描述给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。示例 1 :输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。说明 :数组的长度为 [1, 20,000]。数组中元素的范围是 [-1000, 1000] ,且整数 k 的范围是 [-1e7, 1e7]。解法一:暴力破解固定起点,向右枚举class Solution { public int subarr原创 2020-06-07 11:14:57 · 121 阅读 · 0 评论 -
337. 打家劫舍 III
337. 打家劫舍 III题目描述在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。计算在不触动警报的情况下,小偷一晚能够盗取的最高金额。解法一:暴力破解-最优子结构一共有两种搭配爷爷跟孙子:int method1 = root.val+原创 2020-06-07 11:14:15 · 238 阅读 · 1 评论 -
347. 前 K 个高频元素(java)
347. 前 K 个高频元素题目描述给定一个非空的整数数组,返回其中出现频率前 k 高的元素。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]提示:你可以假设给定的 k 总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。你的算法的时间复杂度必须优于 O(n log n) , n 是数组的大小。题目数据保证答案唯一,换句话说,数组中前 k 个高频元素的集合是唯一的。你可原创 2020-06-05 12:40:27 · 415 阅读 · 1 评论 -
面试题29. 顺时针打印矩阵
面试题29. 顺时针打印矩阵题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]限制:0 <= matrix.length <= 1000 <= matrix[i原创 2020-06-05 10:51:34 · 83 阅读 · 1 评论 -
279. 完全平方数(java)
279. 完全平方数题目描述给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, …)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。示例 1:输入: n = 12输出: 3解释: 12 = 4 + 4 + 4.示例 2:输入: n = 13输出: 2解释: 13 = 4 + 9.题解:动态规划建表,设置最坏结果逐个比较符合条件的平方数,存入表。其中状态方程为:dp[i]=Math.min(dp[i],dp[i-j*j]+1);class So原创 2020-06-04 11:29:58 · 303 阅读 · 0 评论 -
739. 每日温度(java)
739. 每日温度题目描述根据每日 气温 列表,请重新生成一个列表,对应位置的输出是需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。提示:气温 列表长度的范围是 [1, 30000]。每个气温的值的均为华氏度,都是在 [30, 100] 范围内的整数。解法一:暴力class原创 2020-06-04 10:57:09 · 179 阅读 · 0 评论 -
238.除自身外数组的乘积(java)
238.除自身外数组的乘积题目描述给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6]说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。进阶:你可以在常数空间复杂度内完成这个题目吗?( 出于对空间复杂度分析的目的,输出数组不被视为额外空间。)解法一:左右乘积从左向右累乘,放进数组L[]原创 2020-06-04 09:21:09 · 221 阅读 · 0 评论 -
148.排序链表(java)
148.排序链表题目描述在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。示例 1:输入: 4->2->1->3输出: 1->2->3->4示例 2:输入: -1->5->3->4->0输出: -1->0->3->4->5解法一:归并排序1.递归法分割环节:用快慢指针找中间节点,分割为左右部分,重复操作合并环节:逐个排序,当有一条链为空,将剩下一条加到末尾。返回结果原创 2020-06-03 16:21:28 · 694 阅读 · 1 评论 -
234.回文链表(java)
234.回文链表题目描述请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?解法一:复制数组class Solution { public boolean isPalindrome(ListNode head) { int[] arr = new int[50000]; in原创 2020-06-03 11:14:35 · 203 阅读 · 0 评论 -
437. 路径总和 III(java)
437. 路径总和 III题目描述给定一个二叉树,它的每个结点都存放着一个整数值。找出路径和等于给定数值的路径总数。路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。示例:root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 8返回 3。和等于 8 的路径有:5 -> 35 -> 2 ->原创 2020-06-03 10:26:27 · 291 阅读 · 0 评论