当前位置: 首页> 房产> 家装 > 装修之家_沈阳定制网带式电加热烘箱_宁波seo外包快速推广_淘宝seo是什么意思啊

装修之家_沈阳定制网带式电加热烘箱_宁波seo外包快速推广_淘宝seo是什么意思啊

时间:2025/7/13 23:40:09来源:https://blog.csdn.net/yin2567588841/article/details/146187099 浏览次数:1次
装修之家_沈阳定制网带式电加热烘箱_宁波seo外包快速推广_淘宝seo是什么意思啊

一、437. 路径总和 III

在这里插入图片描述

  • 思路:
    采用前缀和的+回溯
  • 代码:
class Solution:def pathSum(self, root: Optional[TreeNode], targetSum: int) -> int:ans = 0cnt = defaultdict(int)cnt[0] = 1def dfs(node: Optional[TreeNode], s: int) -> None:if node is None:returnnonlocal anss += node.valans += cnt[s - targetSum]cnt[s] += 1dfs(node.left, s)dfs(node.right, s)cnt[s] -= 1  # 恢复现场dfs(root, 0)return ans

1.1 类似题目:560. 和为 K 的子数组

在这里插入图片描述

  • 思路:
    首先,和为k的子数组这种题,只能使用前缀和,无法使用滑动窗口(滑动窗口需要满足单调性,当右端点元素进入窗口时,窗口元素和是不能减少的)。
    第二,要找到和为k的子数组,其实就是找到presum[j] - presum[i] = k,变形一下,presum[i] = presum[j] - k,相当于遍历整个presum数组,找到满足上式的个数。
  • 代码:
class Solution:def subarraySum(self, nums: List[int], k: int) -> int:presum = [0] * (len(nums) + 1)for i, x in enumerate(nums):presum[i + 1] = presum[i] + xans = 0cnt = defaultdict(int)for p in presum:ans += cnt[p - k]   # 满足p2-k = p1的个数cnt[p] += 1return ans

二、236. 二叉树的最近公共祖先

在这里插入图片描述

  • 代码:
class Solution:def lowestCommonAncestor(self, root: TreeNode, p: TreeNode, q: TreeNode) -> TreeNode:if root in (None, p, q):return rootleft = self.lowestCommonAncestor(root.left, p, q)right = self.lowestCommonAncestor(root.right, p, q)if left and right:  # 左右都找到return root  # 当前节点是最近公共祖先return left or right

三、124. 二叉树中的最大路径和

在这里插入图片描述

  • 代码:
class Solution:def maxPathSum(self, root: Optional[TreeNode]) -> int:ans = -infdef dfs(node: Optional[TreeNode]) -> int:if node is None:return 0  # 没有节点,和为 0l_val = dfs(node.left)  # 左子树最大链和r_val = dfs(node.right)  # 右子树最大链和nonlocal ansans = max(ans, l_val + r_val + node.val)  # 两条链拼成路径return max(max(l_val, r_val) + node.val, 0)  # 当前子树最大链和(注意这里和 0 取最大值了)dfs(root)return ans
关键字:装修之家_沈阳定制网带式电加热烘箱_宁波seo外包快速推广_淘宝seo是什么意思啊

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: