当前位置: 首页> 游戏> 单机 > vi设计收费标准_南安网站设计_全网搜索引擎_各大网站域名大全

vi设计收费标准_南安网站设计_全网搜索引擎_各大网站域名大全

时间:2025/7/10 18:20:17来源:https://blog.csdn.net/qq_64076540/article/details/142701304 浏览次数:0次
vi设计收费标准_南安网站设计_全网搜索引擎_各大网站域名大全

1 题目描述

题目链接:在每个树行中找最大值
在这里插入图片描述

2 题目解析

根据题目描述,是找出每一行中的最大值,这毋庸置疑是使用宽度优先遍历了。我在这篇文章中讲解了宽度优先遍历的模板,如果没有看的同学可以先去看一下。

这道题和模板的不同之处在于,需要计算出每一行中的最大值。因此,可以有下面两个思路:
1. 模板中已经拿到了全部的节点值,每一行在vector< int >中,因此可以对每个vector< int >遍历一遍,求出每一行的最大值
2. 在遍历树的过程中出现过对树的每一行都进行遍历的过程,因此可以在遍历树的每一行时找出最大的值

3 代码

3.1 思路1代码

class Solution {
public:vector<int> largestValues(TreeNode* root) {vector<int> ret;queue<TreeNode*> q;if (root == nullptr)return ret;q.push(root);while(q.size()){int m = INT_MIN;//存储的是每一层的值vector<int> tmp;//对于每一层  --> 也可以在这一层里面直接计算出maxint sz = q.size();for (int i = 0; i < sz; ++ i){TreeNode* t = q.front();tmp.push_back(t->val);if (t->left)q.push(t->left);if (t->right)q.push(t->right);q.pop();}//找出这一层中最大的值for (int i = 0; i < tmp.size(); ++ i){m = max(m, tmp[i]);}ret.push_back(m);}return ret;}
};

3.2 思路2代码

class Solution {
public:vector<int> largestValues(TreeNode* root) {vector<int> res;queue<TreeNode*> q;if (root == nullptr)return res;q.push(root);while(q.size()){int sz = q.size();int m = INT_MIN; //这里m不能为0,因为最小值是-2的31次方//vector<int> tmp;for (int i = 0; i < sz; ++ i){TreeNode* t = q.front();q.pop();m = max(m, t->val);if (t->left)q.push(t->left);if (t->right)q.push(t->right);}res.push_back(m);}return res;}
};

在这里插入图片描述

关键字:vi设计收费标准_南安网站设计_全网搜索引擎_各大网站域名大全

版权声明:

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

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

责任编辑: