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

云南微网站开发宿迁房产网

云南微网站开发,宿迁房产网,响应式网站用什么技术做,中国建设网官方网站企业网银Every day a Leetcode 题目来源:2583. 二叉树中的第 K 大层和 解法1:层序遍历 排序 先使用层序遍历计算出树的每一层的节点值的和,保存在数组 levelSum 中。然后将数组进行排序,返回第 k 大的值。需要考虑数组长度小于 k 的边…

Every day a Leetcode

题目来源:2583. 二叉树中的第 K 大层和

解法1:层序遍历 + 排序

先使用层序遍历计算出树的每一层的节点值的和,保存在数组 levelSum 中。然后将数组进行排序,返回第 k 大的值。需要考虑数组长度小于 k 的边界情况。

代码:

/** @lc app=leetcode.cn id=2583 lang=cpp** [2583] 二叉树中的第 K 大层和*/// @lc code=start
/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution
{
public:long long kthLargestLevelSum(TreeNode *root, int k){if (root == nullptr)return -1;vector<long long> levelSum;queue<TreeNode *> q;q.push(root);while (!q.empty()){int size = q.size();long long sum = 0LL;for (int i = 0; i < size; i++){TreeNode *node = q.front();q.pop();sum += node->val;if (node->left)q.push(node->left);if (node->right)q.push(node->right);}levelSum.push_back(sum);}if (levelSum.size() < k)return -1;sort(levelSum.begin(), levelSum.end());return levelSum[levelSum.size() - k];}
};
// @lc code=end

结果:

在这里插入图片描述

复杂度分析:

时间复杂度:O(nlogn),其中 n 是二叉树的节点个数。

空间复杂度:O(n),其中 n 是二叉树的节点个数。

解法2:层序遍历 + 快速选择

也可以使用快速选择的算法快速定位第 k 大的元素。

代码:

// 层序遍历 + 快速选择class Solution
{
public:long long kthLargestLevelSum(TreeNode *root, int k){if (root == nullptr)return -1;vector<long long> levelSum;queue<TreeNode *> q;q.push(root);while (!q.empty()){int size = q.size();long long sum = 0LL;for (int i = 0; i < size; i++){TreeNode *node = q.front();q.pop();sum += node->val;if (node->left)q.push(node->left);if (node->right)q.push(node->right);}levelSum.push_back(sum);}int n = levelSum.size();if (k > n)return -1;ranges::nth_element(levelSum, levelSum.begin() + (n - k));return levelSum[n - k];}
};

结果:

在这里插入图片描述

复杂度分析:

时间复杂度:O(nlogn),其中 n 是二叉树的节点个数。

空间复杂度:O(n),其中 n 是二叉树的节点个数。

http://www.yayakq.cn/news/667035/

相关文章:

  • 在北京大学生做家教的网站做网站记者的出路是什么
  • 北京seo网站旅游景区网站建设方案文档
  • 网站开发岗位职责网站建设与管理论文
  • 中国做的网站国外能打开吗分类目录网站大全做seo
  • 美容院做免费推广哪个网站网匠网站建设有限公司
  • 阿里云 wordpress搭建网站wordpress手机商城
  • 工信部网站备案信息查询网站正能量破解版下载大全安装
  • 唐山网站建设唐山做网站WordPress点击显示弹窗内容
  • 简约型网站设计在百度做推广送网站好吗
  • easyui 做网站wordpress post title
  • 秦皇岛哪里能做网站win 2008 iis建立网站
  • 东莞樟木头哪里有做网站的平台建设网站公司
  • 免费行情软件app网站排行化妆品网站的设计与实现
  • 怎么用企业网站做营销wordpress在线安装主题
  • 烟台开发区建设局网站秦皇岛乾兴建设
  • ppt代做企业网站seo网址
  • 广告留电话号的网站做视频点播网站的要求
  • 燕郊做网站遵义网站优化
  • 小程序就是做网站wordpress栏目加密
  • 东莞做网站哪家好怎样发布自己的网站
  • 罗定网站优化孟村网站建设价格
  • 建立网站的链接结构有哪几种形式?厦门做网站培训
  • 遵义网站开发哪家好隆力奇会员管理系统
  • 万网 网站微商运营
  • 免费模板样机素材网站网站换肤功能 js
  • 网站建设教学设计网站视频插件
  • 凡科建站下载网络推广软文范文
  • 免费ps软件网站查网站的建站系统
  • app网站建站系统南海桂城城乡建设局官方网站
  • 网站运营经理岗位要求移植wordpress数据库