路径问题总结

257二叉树的所有路径

257二叉树的所有路径

class Solution {public List<String> binaryTreePaths(TreeNode root) {List<String> ans = new ArrayList<>();dfs(root,"",ans);return ans;}private void dfs(TreeNode root,String path,List<String> ans){//递归终止条件if(root==null)  return;//如果是叶子节点,说明找到了一条路径if(root.left==null&&root.right==null){ans.add(path+root.val);return;}dfs(root.left,path+root.val+"->",ans);dfs(root.right,path+root.val+"->",ans);}
}

112 路径总和

112 路径总和

 public boolean hasPathSum(TreeNode root, int sum) {//递归终止条件if(root==null)  return false;if(root.left==null&&root.right==null)return sum==root.val;return hasPathSum(root.left,sum-root.val)||hasPathSum(root.right,sum-root.val);}

113 路径总和II

113 路径总和II

class Solution {public List<List<Integer>> pathSum(TreeNode root, int sum) {List<List<Integer>> ans = new ArrayList<>();dfs(root,sum,new ArrayList<>(),ans);return ans;}private void dfs(TreeNode root,int sum,List<Integer> list,List<List<Integer>> ans){//递归终止条件if(root==null)  return;List<Integer> sublist = new ArrayList<>(list);sublist.add(new Integer(root.val));if(root.left==null&&root.right==null){//到达叶子节点,表示找到了一组路径if(sum==root.val)ans.add(sublist);return; }dfs(root.left,sum-root.val,sublist,ans);dfs(root.right,sum-root.val,sublist,ans);}
}

437 路径总和III

437 路径总和III
关键点 targetsum只能改成long 不然会越界
在这里插入图片描述

在这里插入图片描述

class Solution {public int pathSum(TreeNode root, long targetSum) {//访问每一个节点 node,检测以node为起始节点且向下延深的路径有多少种if(root==null)  return 0;int count = root_sum(root,targetSum);//下面两行错在并没有递归找,只找了根 左,右三个为起点的// count+=root_sum(root.left,targetSum);// count+=root_sum(root.right,targetSum);count+=pathSum(root.left,targetSum);count+=pathSum(root.right,targetSum);return count;}//表示以节点p为起点向下且满足路径和为targetsum的路径数目private int root_sum(TreeNode p,long targetSum){int count =0;if(p==null) return 0;//这道题不需要到叶节点 才判断找到一条路径// if(p.left==null&&p.right==null)// {//     if(p.val==targetSum)//     return;// }if(p.val==targetSum)count++;count+=root_sum(p.left,targetSum-p.val);count+=root_sum(p.right,targetSum-p.val);return count;}
}

988. 从叶结点开始的最小字符串

988. 从叶结点开始的最小字符串

class Solution {String ans ="~";//~ ascill码为126,大于所有A-Z.a-z,相当于一开始给个最大值public String smallestFromLeaf(TreeNode root) {dfs(root, new StringBuilder());return ans;}private void dfs(TreeNode node,StringBuilder sb){if(node==null)  return;sb.append((char)('a'+node.val));//到达叶节点,表达已经找到一条路径if(node.left==null&&node.right==null){sb.reverse();String s = sb.toString();if(s.compareTo(ans)<0)//比较字典序 如果更小就更新ans=s;sb.reverse();//比较完后再换回来,好接着递归}dfs(node.left,sb);dfs(node.right,sb);sb.deleteCharAt(sb.length()-1);//回溯,画个递归树就理解了}
}

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

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

相关文章

计算机网络:物理层中的数字传输系统全景概览解析

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

使用Python制作一个批量查询搜索排名的SEO免费工具

搭建背景 最近工作中需要用上 Google SEO&#xff08;搜索引擎优化&#xff09;&#xff0c;有了解过的朋友们应该都知道SEO必不可少的工作之一就是查询关键词的搜索排名。关键词少的时候可以一个一个去查没什么问题&#xff0c;但是到了后期&#xff0c;一个网站都有几百上千…

【Unity】捕捉PC桌面的插件

【背景】 之前介绍了如何用一款名为uWindowCapture的Unity免费插件在Unity的Canvas上展示PC桌面。经过一段时间的使用,本篇继续分享此插件的一些功能和限制。 在此感谢作者Hecomi。 【特征和限制】 一般局域网络环境只能最多达到15帧的帧率,所以别幻想用来窜流游戏或者看电…

备战蓝桥杯Day35 - 动态规划 - 01背包问题

问题描述 隐含前提&#xff1a; 1.物体是不可分的&#xff0c;要么装&#xff0c;要么不装&#xff0c;不能只装一部分。 2.物体顶多使用一次。 动态规划思路 我在b站上看的闫氏dp分析大法的视频&#xff0c;他对dp问题做了总结归纳。 从集合的角度分析dp问题。求出有限集…

[python]bar_chart_race设置日期格式

1、设置日期标签的时间格式 # 设置日期格式&#xff0c;默认为%Y-%m-%dbcr.bar_chart_race(df, covid19_horiz.gif, period_fmt%b %-d, %Y) 2、更改日期标签为数值 # 设置日期标签为数值bcr.bar_chart_race(df.reset_index(dropTrue), covid19_horiz.gif, interpolate_period…

推荐一款.NET开源跨平台的开箱即用的DNS服务器软件

前言 今天要给大家推荐一款.NET开源跨平台的开箱即用的DNS服务器软件&#xff08;用于提供 DNS 解析服务&#xff09;&#xff1a;Technitium DNS Server。 项目介绍 Technitium DNS Server是一个开源的权威和递归DNS服务器&#xff0c;可以用于自主托管DNS服务器以提升隐私和…

Linux收到一个网络包是怎么处理的?

目录 摘要 ​编辑 1 从网卡开始 2 硬中断&#xff0c;有点短 2.1 Game Over 3 接力——软中断 3.1 NET_RX_SOFTIRQ 软中断的开始 3.2 数据包到了协议栈 3.3 网络层处理 3.4 传输层处理 4 应用层的处理 5 总结 摘要 一个网络包的接收始于网卡&#xff0c;经层层协议栈…

利用Jmeter工具对服务器,数据库进行性能监控,压测,导出性能测试报告

Jmeter是Apache基金会旗下的一款免费,开源,轻量级的性能测试工具,主要针对web应用程序客户端/服务器进行性能测试.它可以分别测试静态、动态资源(Java Servlet,CGI Scripts,Java Object,数据库和FTP服务器等),它可以通过线程组来模拟数个用户,在一段时间内同时登录服务器,数个用…

LeetCode-热题100:42. 接雨水

题目描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1a; height [0,1,0,2,1,0,1,3,2,1,2,1] 输出&#xff1a; 6 解释&#xff1a; 上面是由数组 [0,1,0,2,1,…

CICD流水线(ali)

后端CICD 一、打开云效流水线&#xff0c;创建流水线

HarmonyOS NEXT应用开发之听歌识曲水波纹特效案例

介绍 在很多应用中&#xff0c;会出现点击按钮出现水波纹的特效。 效果图预览 使用说明 进入页面&#xff0c;点击按钮&#xff0c;触发水波纹动画。再次点击按钮&#xff0c;停止水波纹动画。 实现思路 本例涉及的关键特性和实现方案如下&#xff1a; 要实现存在两个连续…

TikTok云手机是什么原理?

社交媒体的快速发展和普及&#xff0c;TikTok已成为全球最受欢迎的短视频平台之一&#xff0c;吸引了数以亿计的用户。在TikTok上&#xff0c;许多用户和内容创作者都希望能够更灵活地管理和运营多个账号&#xff0c;这就需要借助云手机技术。那么&#xff0c;TikTok云手机究竟…

集合系列(十三) -红黑树实现分析详解

一、故事的起因 JDK1.8最重要的就是引入了红黑树的设计&#xff08;当冲突的链表长度超过8个的时候&#xff09;&#xff0c;为什么要这样设计呢&#xff1f;好处就是避免在最极端的情况下冲突链表变得很长很长&#xff0c;在查询的时候&#xff0c;效率会非常慢。 红黑树查询&…

uniapp自定义导航栏左中右内容和图标,以及点击事件

uniapp自定义导航栏左中右内容和图标&#xff0c;以及点击事件 效果&#xff1a; 页面&#xff1a; <view class"navigation-bar"><view class"navigation-bar-left" click"navigateBack"><u-icon name"arrow-left"…

数学建模(灰色关联度 python代码 案例)

目录 介绍&#xff1a; 模板&#xff1a; 案例&#xff1a;哪些原因影响结婚率 数据标准化&#xff1a; 灰色关联度系数&#xff1a; 完整代码&#xff1a; 结果&#xff1a; 介绍&#xff1a; 灰色关联度是一种多指标综合评价方法&#xff0c;用于分析和评价不同指标之…

【DP】01背包问题与完全背包问题

一、01背包问题 有 N件物品和一个容量是 V 的背包。每件物品只能使用一次。 第 i 件物品的体积是 vi&#xff0c;价值是 wi。 求解将哪些物品装入背包&#xff0c;可使这些物品的总体积不超过背包容量&#xff0c;且总价值最大。 输出最大价值。 输入格式 第一行两个整数&…

Email API有哪些主要功能?如何用API发信?

Email API的安全性如何保障&#xff1f;如何选择API进行集成&#xff1f; Email API简化了电子邮件交互的复杂性&#xff0c;让开发者能够轻松地将邮件功能集成到他们的应用中。那么&#xff0c;Email API究竟有哪些主要功能呢&#xff1f;接下来&#xff0c;AokSend将一一探讨…

在Linux搭建Emlog博客结合内网穿透实现公网访问本地个人网站

文章目录 前言1. 网站搭建1.1 Emolog网页下载和安装1.2 网页测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2.Cpolar稳定隧道&#xff08;云端设置&#xff09;2.3.Cpolar稳定隧道&#xff08;本地设置&#xff09; 3. 公网访问测试总结 前言 博客作为使…

小迪安全46WEB 攻防-通用漏洞PHP 反序列化原生类漏洞绕过公私有属性

#知识点&#xff1a; 1、反序列化魔术方法全解 2、反序列化变量属性全解 3、反序列化魔术方法原生类 4、反序列化语言特性漏洞绕过 -其他魔术方法 -共有&私有&保护 -语言模式方法漏洞 -原生类获取利用配合 #反序列化利用大概分类三类 -魔术方法的调用…

Backend - Echarts(柱状条形图)

一、下载并安装 &#xff08;一&#xff09;官网 https://echarts.apache.org/zh/index.html &#xff08;二&#xff09;下载依赖 1. 官网里选择下载方式 https://echarts.apache.org/handbook/zh/basics/download/ 2. 官网github方式下载 https://github.com/apache/echa…