当前位置: 首页 > news >正文

哪些网站开发手机研发流程

哪些网站开发,手机研发流程,flash开发网站,成都十大广告公司排名【算法】力扣【树形DP】687. 最长同值路径 687. 最长同值路径 文章目录 【算法】力扣【树形DP】687. 最长同值路径题目描述输入输出示例 题解思路代码描述 复杂度分析总结 题目描述 本题要求在给定的二叉树中寻找最长的同值路径,这个路径中的每个节点的值都相同。…

【算法】力扣【树形DP】687. 最长同值路径

687. 最长同值路径

文章目录

  • 【算法】力扣【树形DP】687. 最长同值路径
    • 题目描述
      • 输入输出示例
    • 题解思路
      • 代码描述
    • 复杂度分析
    • 总结


题目描述

本题要求在给定的二叉树中寻找最长的同值路径,这个路径中的每个节点的值都相同。路径可以通过也可以不通过根节点,路径长度由节点间的边数表示。

其实就是在二叉树的直径的基础上,多考虑了每个节点的值而已。

输入输出示例

  • 示例 1:

    输入:root = [5,4,5,1,1,5]
    输出:2

    解释: 最长的同值路径为树中的两个值为5的节点之间的路径,路径长度为2。

  • 示例 2:

    输入:root = [1,4,5,4,4,5]
    输出:2

    解释: 最长的同值路径为树中值为4的两个相邻节点间的路径,或者值为5的两个相邻节点间的路径,路径长度均为2。

题解思路

为了解决这个问题,我们采用树形动态规划的方法。在处理任何一个节点时,我们需要知道以该节点为终点的最长同值路径,并且我们也需要知道经过该节点的最长同值路径长度。这两个信息可以帮助我们递归地求解整棵树。

代码描述

在代码中,我们定义一个递归函数dp,它返回两个值:

  1. 以当前节点为终点的最长同值路径长度。
  2. 当前节点的值。

代码中有四种情况需要考虑:

  1. 左子树和右子树的值与当前节点相同。
  2. 仅左子树的值与当前节点相同。
  3. 仅右子树的值与当前节点相同。
  4. 左右子树的值都与当前节点不同。

我们需要根据这些情况更新答案,并返回适当的值。以下是代码段及注释:

class Solution:def longestUnivaluePath(self, root: Optional[TreeNode]) -> int:def dp(node):if node is None:return 0, -1cval = node.valleft, lval = dp(node.left)right, rval = dp(node.right)nonlocal ans# 情况1:左右子树的值均与当前节点相同if lval == rval == cval:ans = max(ans, left + right)return max(left, right) + 1, cval# 情况2:仅左子树的值与当前节点相同elif lval == cval:ans = max(ans, left)return left + 1, cval# 情况3:仅右子树的值与当前节点相同elif rval == cval:ans = max(ans, right)return right + 1, cval# 情况4:左右子树的值均与当前节点不同else:return 1, cvalans = 0dp(root)return ans

复杂度分析

  • 时间复杂度: O ( n ) O(n) O(n),其中 n n n表示节点数量。每个节点仅被访问一次。
  • 空间复杂度: O ( n ) O(n) O(n),其中 n n n表示节点的数量,因为在最坏的情况下树会退化成一条链。空间复杂度主要取决于递归时堆栈的深度。

总结

本题是一道中等难度的树形DP问题,通过分治的思想和递归实现,仅仅是在树形DP的外皮上套了一层需求,我们只需要思考一下如何将节点的值考虑进状态转移方程即可非常简单地解决这个问题。

http://www.15wanjia.com/news/182625.html

相关文章:

  • 做阿里巴巴网站可以贷款吗wordpress安装不
  • 青岛建站通网站建设网站排名
  • 建网站可以赚钱吗网页设计与制作教程西北工业大学
  • 专业网站建设哪里找有哪些做策划的用的网站
  • 帝国建站模板网站建设分什么行业
  • 网站安全的必要性做网站需要些什么
  • 深圳做手机网站设计什么是网络营销举例子
  • 哪个网站做logo设计师html5旅游网页设计
  • ftp 迁移 网站没有网站可以做的广告联盟
  • 金寨县住房和城乡建设部网站kangle搭建wordpress
  • 提供佛山顺德网站建设医院网站和微信公众号建设
  • 个人作品集网站模板电子简历手机版
  • 传送门网站是怎么做的企业网站的建设
  • sns网站需求seo技术博客
  • 优秀设计师个人网站织梦cms网站迁移
  • 什么科技网站建设wordpress seo收费主题
  • 免费做网站支持绑定推荐一款男人都懂得app
  • 韶关网站建设墨子wordpress移动端底部广告
  • 外贸自建站是什么意思中国丹阳
  • 金融社区类网站建设超值的郑州网站建设
  • 把照片做册子的网站网页设计工资怎么算
  • 网络招商平台网站怎么做无锡做网站公司哪家好
  • 阿里云里面网站建设wordpress火车头插件
  • 建域名网站需要多少钱做微信活动是做网站还是做小程序好
  • 大型网站系统架构网站开发人员职责
  • 定制网站哪个好做电商什么外推网站好
  • 怎么用外国的服务器做网站萧县做网站的公司
  • 怎么做福利视频网站俄罗斯局势最新消息
  • 网站开发工资山东企业网站设计方案书
  • 纺织品东莞网站建设超炫网站