【LeetCode 算法刷题笔记-路径篇】

1.0112. 路径总和

1.1 题目大意
描述:给定一个二叉树的根节点 root 和一个值 targetSum。

要求:判断该树中是否存在从根节点到叶子节点的路径,使得这条路径上所有节点值相加等于 targetSum。如果存在,返回 True;否则,返回 False。
说明:
树中节点的数目在范围[0,5000]
在这里插入图片描述

输入:root = [5,4,8,11,null,13,4,7,2,null,null,null,1], targetSum = 22
输出:true
解释:等于目标和的根节点到叶节点路径如上图所示。

解题思路

按照题意,是从根节点的值累加叶节点的值是否等于每个值,首先判断根节点是否存在,然后开始依次往下找到最底层的节点,即既没有左节点,也没有右节点的节点,依次累加,满足累加值等于指定值,累加到的那个节点既没有左节点,也没有右节点。

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def hasPathSum(self, root: Optional[TreeNode], target: int) -> bool:if not root:return Falsereturn self.dfs(root,target,[root.val])def dfs(self,root,target,path):if not root:return Falseif sum(path)==target and not root.left and not root.right:return Trueleft_flag,right_flag=False,Falseif root.left:left_flag=self.dfs(root.left,target,path+[root.left.val])if root.right:right_flag=self.dfs(root.right,target,path+[root.right.val])return left_flag or right_flag

在这里插入图片描述

2.0113. 路径总和 II

2.1 题目大意
描述:给定一棵二叉树的根节点 root 和一个整数目标 targetSum。

要求:找出「所有从根节点到叶子节点路径总和」等于给定目标和 targetSum 的路径。

说明:

叶子节点:指没有子节点的节点。
树中节点的数目在范围[0,5000]
在这里插入图片描述

输入:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22
输出:[[5,4,11,2],[5,8,4,5]]
# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def pathSum(self, root: Optional[TreeNode], targetSum: int) -> List[List[int]]:res,path=[],[]def recur(root,tar):if not root:returnpath.append(root.val)tar-=root.valif tar==0 and not root.left and not root.right:res.append(list(path))recur(root.left,tar)recur(root.right,tar)path.pop()recur(root,targetSum)return res

在这里插入图片描述

3.0101. 对称二叉树

3.1 题目大意
描述:给定一个二叉树的根节点 root。

要求:判断该二叉树是否是左右对称的。
说明:
树中节点数目在范围[1,1000]内。
在这里插入图片描述

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def isSymmetric(self, root: Optional[TreeNode]) -> bool:def recur(left,right):if not left and not right:return Trueif not right or not left or left.val!=right.val:return Falsereturn recur(left.left,right.right) and recur(left.right,right.left)return recur(root.left,root.right)

在这里插入图片描述

1.0124. 二叉树中的最大路径和

1.1 题目大意
描述:给定一个二叉树的根节点 root。
要求:返回其最大路径和。
说明:
路径:从树中的任意节点出发,沿父节点——子节点连接,到达任意节点的序列。同一个节点在一条路径序列中至多出现一次。该路径至少包含一个节点,且不一定经过根节点。
路径和:路径中各节点值的总和。
在这里插入图片描述
在这里插入图片描述

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def maxPathSum(self, root: Optional[TreeNode]) -> int:ans=-infdef dfs(root):if not root:return 0l_val=dfs(root.left)r_val=dfs(root.right)nonlocal ansans=max(ans,l_val+r_val+root.val)return max(max(l_val,r_val)+root.val,0)dfs(root)return ans

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/762584.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker-compose(mysql5.6、mysql8、neo4j3.5、redis)

docker-compose常用配置 docker-compose.ymlmysql5.6 配置文件 my.cnfmysql8 配置文件 my.cnfredis 配置文件 redis.conf docker-compose.yml version: 3 services: # 所有卷挂载在/home/docker/vol目录,不同应用建立不同子目录存放挂载数据 # 图数据库 neo4j:cont…

elementUI Tree 树形控件单选实现

文章目录 展示效果代码实现elementui Tree树形控件其他详细数据 在Element UI中,树形控件(el-tree)本身不支持单选功能。但是,你可以通过监听节点点击事件并手动更新选中状态来实现单选树。 以下是一个简单的例子,展示…

vue3中reactive详解

在Vue 3中,reactive函数是一个非常重要的工具,它用于将普通的JavaScript对象或数组转换为响应式对象。这意味着当这些对象的属性发生变化时,Vue可以自动检测和更新相关的DOM。 使用方法 使用reactive函数,你可以将任意对象或数组…

底盘运动模型及里程计

主要研究底盘运动模型及里程计 目录 1.底盘模型1.1 两轮差分底盘的运动学模型1.2 二、三轮全向底盘的运动学模型2.航迹推算1.3 阿克曼底盘运动学模型1.3.1 阿克曼结构1.3.2 阿克曼结构运动学模型3.里程计标定3.1 线性最小二乘的基本原理3.1 最小二乘在里程计标定中的应用1.底盘…

Go 语言Web开发-模板(template)快速入门教程

模板基础 Go语言模板包是用于生成文本输出的工具,它通过解析模板文本并结合数据生成最终的输出文本。模板语法简洁而强大,包括模板标记、变量输出、控制结构和模板函数等。模板对象表示已解析和编译的模板,可以执行并输出最终文本。模板包的…

React【Day1】

B站视频链接 一、React介绍 React由Meta公司开发,是一个用于 构建Web和原生交互界面的库 React的优势 相较于传统基于DOM开发的优势 组件化的开发方式不错的性能 相较于其它前端框架的优势 丰富的生态跨平台支持 React的市场情况 全球最流行,大…

nginx的location规则与其他功能

1. nginx中location规则: 规则描述~表示执行一个正则匹配,区分大小写~*表示执行一个正则匹配,不区分大小写^~表示普通字符匹配,如果该选项匹配,只匹配该选项,不匹配别的选项,一般用来匹配目录进…

pandas读写excel,csv

1.读excel 1.to_dict() 函数基本语法 DataFrame.to_dict (self, orientdict , into ) --- 官方文档 函数种只需要填写一个参数:orient 即可 ,但对于写入orient的不同,字典的构造方式也不同,官网一共给出了6种&#xff0c…

API(时间类)

一、Date类 java.util.Date类 表示特定的瞬间,精确到毫秒。 Date常用方法: public long getTime() 把日期对象转换成对应的时间毫秒值。 public void setTime(long time) 把方法参数给定的毫秒值设…

python网络爬虫实战教学——requests的使用(1)

文章目录 专栏导读1、前言2、get请求3、抓取网页4、抓取二进制数据5、请求头 专栏导读 ✍ 作者简介:i阿极,CSDN 数据分析领域优质创作者,专注于分享python数据分析领域知识。 ✍ 本文录入于《python网络爬虫实战教学》,本专栏针对…

部署Prometheus+grafana详解

目录 一、prometheus 介绍 二、prometheus 对比 zabbix 三、prometheus 监控插件 四、部署 1、下载所需的包 2.编辑prometheus的配置文件 3、编辑alertmanager 的配置文件 4、tmpl 模板(将此文件创建在/opt/alertmanager/tmpl/) 5.启动&#xff0…

探索国内ip切换App:打破网络限制

在国内网络环境中,有时我们会遇到一些限制或者屏蔽,使得我们无法自由访问一些网站或服务。而国内IP切换App的出现,为解决这些问题提供了非常便捷的方式。这些App可以帮助用户切换IP地址,让用户可以轻松地访问被限制或屏蔽的网站&a…

leetcode刷题(javaScript)——BFS广度优先遍历相关场景题总结

广度优先搜索(BFS)在JavaScript编程中有许多实际应用场景,特别是在解决图、树等数据结构相关问题时非常常见。在JavaScript中,可以使用队列来实现广度优先搜索算法。通过将起始节点加入队列,然后迭代地将节点的邻居节点…

css background-color属性无效

因为工作需要&#xff0c;最近在帮H5同事开发几个页面&#xff0c;在使用H5进行如下布局的时候&#xff0c;发现设置 background-color为白色无效。 代码如下&#xff1a; <div class "bottomBar"><div style"position: fixed; left: 20px;">…

精细化运维与用户权限管理的全新升级

在当今数字化时代&#xff0c;企业对IT运维的需求日益增长&#xff0c;尤其是对于用户权限和设备管理的精细化控制。为了满足这些需求&#xff0c;监控易运维系统最近进行了一次重大的升级&#xff0c;特别是在用户权限管理和运维可视化方面取得了显著的进步。 在用户权限管理方…

同步服务器操作系统公网仓库到本地02--搭建http内网仓库源 _ 麒麟KOS _ 统信UOS _ 中科方德 NFSCNS

原文链接&#xff1a;同步服务器操作系统公网仓库到本地02 —搭建http内网仓库源| 麒麟KOS | 统信UOS | 中科方德 NFSCNS Hello&#xff0c;大家好啊&#xff01;继之前我们讨论了如何同步服务器公网仓库到本地服务器之后&#xff0c;今天我们将进入这个系列的第二篇文章——通…

美容美发行业在线下单小程序源码系统 一键在线预约 带完整的安装代码包以及安装部署教程

近年来&#xff0c;美容美发市场竞争日益激烈&#xff0c;传统的经营模式已难以满足消费者的多样化需求。为了适应市场变化&#xff0c;提升服务质量&#xff0c;许多商家开始寻求数字化转型。然而&#xff0c;由于技术门槛较高&#xff0c;很多商家在开发在线预约系统时遇到了…

中兴通讯服务器荣获滴滴“最佳需求响应「和衷共济」奖”

在数字经济加速发展的背景下&#xff0c;算力成为数字产业的核心支撑力量&#xff0c;而服务器和存储产品更是为互联网创新体验提供了底层基础设施保障。在此背景下&#xff0c;中兴通讯服务器产品有效支撑滴滴出行智慧交通解决方案&#xff0c;凭借卓越表现&#xff0c;获得滴…

StarRocks-2.5.13部署安装

1、安装jdk11 tar xf jdk-11.0.16.1_linux-x64_bin.tar.gz mv jdk-11.0.16.1 /data/soft/jdk-11 # 配置在/etc/profile中 export JAVA_HOME/data/soft/jdk-11 export CLASSPATH.:/data/soft/jdk-11/lib export PATH/data/soft/jdk-11/bin:$PATH # 验证jdk [rootdb-public-03 s…

实验8-2-9 长整数转化成16进制字符串(PTA)

题目&#xff1a; 本题要求实现一个将长整数转化成16进制字符串的简单函数。 函数接口定义&#xff1a; void f( long int x, char *p );其中x是待转化的十进制长整数&#xff0c;p指向某个字符数组的首元素。函数f的功能是把转换所得的16进制字符串写入p所指向的数组。16进…