教用vs2013做网站的书微信小程序怎么做表格

pingmian/2025/10/9 16:41:00/文章来源:
教用vs2013做网站的书,微信小程序怎么做表格,网站备案安全责任书是谁盖章,建网站的每年有费用112路径总和 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径#xff0c;这条路径上所有节点值相加等于目标和 targetSum 。如果存在#xff0c;返回 true #xff1b;否则#xff0c;返回 false 。 叶子节点 是…112路径总和  给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径这条路径上所有节点值相加等于目标和 targetSum 。如果存在返回 true 否则返回 false 。 叶子节点 是指没有子节点的节点。 示例 1 输入root [5,4,8,11,null,13,4,7,2,null,null,null,1], targetSum 22 输出true 解释等于目标和的根节点到叶节点路径如上图所示。 思路 相信很多同学都会疑惑递归函数什么时候要有返回值什么时候没有返回值特别是有的时候递归函数返回类型为bool类型。 那么接下来我通过详细讲解如下两道题来回答这个问题 112.路径总和(opens new window)113.路径总和ii(opens new window) 这道题我们要遍历从根节点到叶子节点的路径看看总和是不是目标和。 #递归 可以使用深度优先遍历的方式本题前中后序都可以无所谓因为中节点也没有处理逻辑来遍历二叉树 确定递归函数的参数和返回类型 参数需要二叉树的根节点还需要一个计数器这个计数器用来计算二叉树的一条边之和是否正好是目标和计数器为int型。 再来看返回值递归函数什么时候需要返回值什么时候不需要返回值这里总结如下三点 如果需要搜索整棵二叉树且不用处理递归返回值递归函数就不要返回值。这种情况就是本文下半部分介绍的113.路径总和ii如果需要搜索整棵二叉树且需要处理递归返回值递归函数就需要返回值。 这种情况我们在236. 二叉树的最近公共祖先 (opens new window)中介绍如果要搜索其中一条符合条件的路径那么递归一定需要返回值因为遇到符合条件的路径了就要及时返回。本题的情况 而本题我们要找一条符合条件的路径所以递归函数需要返回值及时返回那么返回类型是什么呢 如图所示 图中可以看出遍历的路线并不要遍历整棵树所以递归函数需要返回值可以用bool类型表示。 所以代码如下 bool traversal(treenode* cur, int count) // 注意函数的返回类型确定终止条件 首先计数器如何统计这一条路径的和呢 不要去累加然后判断是否等于目标和那么代码比较麻烦可以用递减让计数器count初始为目标和然后每次减去遍历路径节点上的数值。 如果最后count 0同时到了叶子节点的话说明找到了目标和。 如果遍历到了叶子节点count不为0就是没找到。 递归终止条件代码如下 if (!cur-left !cur-right count 0) return true; // 遇到叶子节点并且计数为0 if (!cur-left !cur-right) return false; // 遇到叶子节点而没有找到合适的边直接返回确定单层递归的逻辑 因为终止条件是判断叶子节点所以递归的过程中就不要让空节点进入递归了。 递归函数是有返回值的如果递归函数返回true说明找到了合适的路径应该立刻返回。 代码如下 if (cur-left) { // 左 空节点不遍历// 遇到叶子节点返回true则直接返回trueif (traversal(cur-left, count - cur-left-val)) return true; // 注意这里有回溯的逻辑 } if (cur-right) { // 右 空节点不遍历// 遇到叶子节点返回true则直接返回trueif (traversal(cur-right, count - cur-right-val)) return true; // 注意这里有回溯的逻辑 } return false;以上代码中是包含着回溯的没有回溯如何后撤重新找另一条路径呢。 回溯隐藏在traversal(cur-left, count - cur-left-val)这里 因为把count - cur-left-val 直接作为参数传进去函数结束count的数值没有改变。 为了把回溯的过程体现出来可以改为如下代码 if (cur-left) { // 左count - cur-left-val; // 递归处理节点;if (traversal(cur-left, count)) return true;count cur-left-val; // 回溯撤销处理结果 } if (cur-right) { // 右count - cur-right-val;if (traversal(cur-right, count)) return true;count cur-right-val; } return false;整体代码如下 class Solution { private:bool traversal(TreeNode* cur, int count) {if (!cur-left !cur-right count 0) return true; // 遇到叶子节点并且计数为0if (!cur-left !cur-right) return false; // 遇到叶子节点直接返回if (cur-left) { // 左count - cur-left-val; // 递归处理节点;if (traversal(cur-left, count)) return true;count cur-left-val; // 回溯撤销处理结果}if (cur-right) { // 右count - cur-right-val; // 递归处理节点;if (traversal(cur-right, count)) return true;count cur-right-val; // 回溯撤销处理结果}return false;}public:bool hasPathSum(TreeNode* root, int sum) {if (root NULL) return false;return traversal(root, sum - root-val);} };以上代码精简之后如下 class Solution { public:bool hasPathSum(TreeNode* root, int sum) {if (!root) return false;if (!root-left !root-right sum root-val) {return true;}return hasPathSum(root-left, sum - root-val) || hasPathSum(root-right, sum - root-val);} };是不是发现精简之后的代码已经完全看不出分析的过程了所以我们要把题目分析清楚之后再追求代码精简。 这一点我已经强调很多次了 #迭代 如果使用栈模拟递归的话那么如果做回溯呢 此时栈里一个元素不仅要记录该节点指针还要记录从头结点到该节点的路径数值总和。 c就我们用pair结构来存放这个栈里的元素。 定义为pairTreeNode*, int pair节点指针路径数值 这个为栈里的一个元素。 如下代码是使用栈模拟的前序遍历如下详细注释 class solution {public:bool haspathsum(TreeNode* root, int sum) {if (root null) return false;// 此时栈里要放的是pair节点指针路径数值stackpairTreeNode*, int st;st.push(pairTreeNode*, int(root, root-val));while (!st.empty()) {pairTreeNode*, int node st.top();st.pop();// 如果该节点是叶子节点了同时该节点的路径数值等于sum那么就返回trueif (!node.first-left !node.first-right sum node.second) return true;// 右节点压进去一个节点的时候将该节点的路径数值也记录下来if (node.first-right) {st.push(pairTreeNode*, int(node.first-right, node.second node.first-right-val));}// 左节点压进去一个节点的时候将该节点的路径数值也记录下来if (node.first-left) {st.push(pairTreeNode*, int(node.first-left, node.second node.first-left-val));}}return false;} };如果大家完全理解了本题的递归方法之后就可以顺便把leetcode上113. 路径总和ii做了。 #相关题目推荐 #113. 路径总和ii 力扣题目链接(opens new window) 给定一个二叉树和一个目标和找到所有从根节点到叶子节点路径总和等于给定目标和的路径。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树以及目标和 sum 22 #思路 113.路径总和ii要遍历整个树找到所有路径所以递归函数不要返回值 如图 为了尽可能的把细节体现出来我写出如下代码这份代码并不简洁但是逻辑非常清晰 class solution { private:vectorvectorint result;vectorint path;// 递归函数不需要返回值因为我们要遍历整个树void traversal(TreeNode* cur, int count) {if (!cur-left !cur-right count 0) { // 遇到了叶子节点且找到了和为sum的路径result.push_back(path);return;}if (!cur-left !cur-right) return ; // 遇到叶子节点而没有找到合适的边直接返回if (cur-left) { // 左 空节点不遍历path.push_back(cur-left-val);count - cur-left-val;traversal(cur-left, count); // 递归count cur-left-val; // 回溯path.pop_back(); // 回溯}if (cur-right) { // 右 空节点不遍历path.push_back(cur-right-val);count - cur-right-val;traversal(cur-right, count); // 递归count cur-right-val; // 回溯path.pop_back(); // 回溯}return ;}public:vectorvectorint pathSum(TreeNode* root, int sum) {result.clear();path.clear();if (root NULL) return result;path.push_back(root-val); // 把根节点放进路径traversal(root, sum - root-val);return result;} };至于113. 路径总和ii 的迭代法我并没有写用迭代方式记录所有路径比较麻烦也没有必要如果大家感兴趣的话可以再深入研究研究。 #总结 本篇通过leetcode上112. 路径总和 和 113. 路径总和ii 详细的讲解了 递归函数什么时候需要返回值什么不需要返回值。 这两道题目是掌握这一知识点非常好的题目大家看完本篇文章再去做题就会感受到搜索整棵树和搜索某一路径的差别。 对于112. 路径总和我依然给出了递归法和迭代法这种题目其实用迭代法会复杂一些能掌握递归方式就够了

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

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

相关文章

建设网站兼职潍坊网站建设报价

1.FloatingActionButton 死活都不是圆形 必须加上下面这个属性才是圆形 app:shapeAppearance"style/ShapeAppearanceOverlay.Material3.Button"2.FloatingActionButton 中间的icon不居中 加上下面的属性,然后大小跟你的控件大小一致 app:fabCustomSiz…

赤峰做企业网站公司黄页网址大全免费观看直播app

最近做一个算法的GPU加速,发现实际上使用gcc的-O3(最高级编译优化)选项,可以获得很高的加速比,我的程序里达到了3倍的样子,有时效果甚至比GPU加速好。因此小小学习了下GNU的编译优化。 附言一句,在进行调试的时候&…

兖州网站制作定州市建设工程信息网

文章目录① 安装oracle服务端②安装plsql③配置监听④配置2个⑤重启plsql① 安装oracle服务端 ②安装plsql ③配置监听 ④配置2个 【打开客户端】-【取消】-【工具】-【首选项】-【连接】 配置截图2个配置 【Tools】-【Preferences】-【Connection】 根据自己的oracle安装路…

用wix做网站需要备案吗中国制造网平台

大模型正缓慢地渗透进入我们的生活,尽管目前还没有现象级的产品应用,但它已足以让我痴迷于它,我对它能够提升程序员的生产效率笃定无疑。 本次我用一个下午做了一次尝试,使用大模型帮助我开发一个谷歌插件。开发之前,…

diy网站建设源码ppt哪个网站质量高

在现代商业环境中,迅速而高效的沟通是企业成功的关键要素之一。而在传统的会议模式下,时间成本和地理限制往往给企业带来不小的困扰。针对这一问题,WorkPlus推出了一款创新的局域网会议软件——WorkPlus Meet,旨在为企业创造高效的…

网页无法打开seo到底是做什么的

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 C#在写一个实体类时,有属性的写法,省去了写getter和setter的麻烦。 在Java编程时,写完字段后&#x…

投放广告网站中国域名后缀

前些天发现了十分不错的人工智能学习网站,通俗易懂,风趣幽默,没有广告,分享给大家,大家可以自行看看。(点击跳转人工智能学习资料) 文章目录1. 触发器概述2. 触发器的创建3. 查看、删除触发器4.…

网站及微站建设合同验收网站开发word

在学习二叉树之前.必须先要掌握一些树的重要概念: 结点的度:一个结点含有的子树个数称为该结点的度.树的度:一棵树中,所有节点度的最大值称为树的度.叶子结点:度为0的结点称为叶子节点.(也叫终端结点)双亲结点:若一个结点含有子结点,则这个结点称为其子结点的双亲结点(也叫父节…

直播间网站开发设计wordpress 一键转微信

1、进入虚拟化vcenter中,用浏览器登录(客户端没找到地方设置),新建一个只读用户zabbix。2、 登录vcenter客户端,将新建用户授权为只读授权过后可以使用新账号登录测试一下。3、开启exsi主机Managed Object Browser (MOB)功能,没有就默认开着的…

网站cc攻击用什么来做莆田网站建设推广

简介 Sanic 是一个和类Flask 的基于Python3.5的web框架,它编写的代码速度特别快。 除了像Flask 以外,Sanic 还支持以异步请求的方式处理请求。这意味着你可以使用新的 async/await 语法,编写非阻塞的快速的代码。 关于 asyncio 包的介绍&…

WordPress上传后找不到可以做关键词优化的免费网站

第1章 绪论 当前的网络技术,软件技术等都具备成熟的理论基础,市场上也出现各种技术开发的软件,这些软件都被用于各个领域,包括生活和工作的领域。随着电脑和笔记本的广泛运用,以及各种计算机硬件的完善和升级&#xf…

东莞网站制作南城wordpress置顶排序

目录 一.OpenGL 图像单色 1.原始图片2.效果演示 二.OpenGL 图像单色源码下载三.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 基础 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 特效 零基础 OpenGL ES 学习…

网站开发下载那个wordpress底部功能按钮

来源:生物360一篇论文报告称,小鼠下丘脑视前区相当于一个集成中心,汇集育儿行为相关的大量信息。具体而言,研究人员发现视前区表达甘丙肽的神经元会协调育儿行为的运动、动机、激素和社会因素。相关成果近日 发表 于《自然》。育儿…

赣州开发区网站建设建个网站费用大概多少钱一年

本文介绍qml页面嵌入到QWidget的两种方式,以及这两种方式的区别。 方式1 在 Qt 中,可以使用 QQuickWidget 将 QML 内容嵌入到基于 QWidget 的应用程序中。这是在旧的 QWidget-based 应用程序中逐渐引入 QML UI 的一种常见方式。 以下是如何使用 QQuickWidget 将 QML 内容嵌…

顺德网站制作公司wordpress 豆瓣fm

字面量: 就是一个一个的值,如1、2、3、‘hello’,就是它自己本身表达的字面值、字面意思,在程序中可以直接使用。 变量(variable): 可以用来保存字面量,变量本身没有任何意思&#x…

微站和网站数据同步高质量视频素材网站

方法一 Hierholzer’s Algorithm 相关概念: 1 欧拉路径:在无向图中,每个边只经过一次,形成的路径。在有向图中,是指每条有向边只使用一次,形成的路径。 2 欧拉回路:欧拉路径是一个环。 3 在…

自己做网站需要多少费用天眼查询个人 企业查询

文章目录 常见特征种类one-hot编码特征哈希(`Feature hashing`)基于统计的类别编码对循环特征的编码目标编码(Target encoding)K折目标编码(K-Fold Target encoding)用于数据分析的特征可能有多种形式,需要将其合理转化成模型能够处理的形式,特别是对非数值的特征,特征…

嘉兴网站建议wordpress修改主题代码

ChatGPT无限次数:点击直达 html 揭秘ChatGPT技巧:高效撰写学术论文的专家秘笈 揭秘ChatGPT技巧:高效撰写学术论文的专家秘籍 在当今信息爆炸的时代,如何高效撰写学术论文成为许多研究者和学生关注的焦点。ChatGPT是一款人工智能助手&…

泉州定制网站建设wordpress创意点赞

2023年云南省职业院校技能大赛 中职组“网络安全”赛项样题 一、竞赛时间 总计:180分钟 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 A、B模块 A-1 登录安全加固 180分钟 200分 A-2 数据库加固 A-3 服务加固SSH\VSFTPD A-4 防火墙策…

渝水区城乡建设局网站前端需要掌握哪些知识

架构原理 一、高吞吐机制:Batch打包、缓冲区、acks 1. Kafka Producer怎么把消息发送给Broker集群的? 需要指定把消息发送到哪个topic去 首先需要选择一个topic的分区,默认是轮询来负载均衡,但是如果指定了一个分区key&#x…