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

网站建设大致分哪几块网站优化排名易下拉霸屏

网站建设大致分哪几块,网站优化排名易下拉霸屏,网站建设运营期末考试,icp备案号怎么查二叉搜索树的最小绝对差 二叉搜索树(Binary Search Tree,简称 BST)是一种特殊的二叉树,它的每个节点都满足以下条件: 左子树上所有节点的值均小于该节点的值;右子树上所有节点的值均大于该节点的值&#…
  1. 二叉搜索树的最小绝对差

二叉搜索树(Binary Search Tree,简称 BST)是一种特殊的二叉树,它的每个节点都满足以下条件:

  1. 左子树上所有节点的值均小于该节点的值;
  2. 右子树上所有节点的值均大于该节点的值;
  3. 左右子树都是二叉搜索树。

因此,对于一棵二叉搜索树,中序遍历得到的结果是一个有序的数组。而本题就是要求在一个二叉搜索树中找到任意两个节点的差的绝对值的最小值。

解题思路:

  1. 对二叉搜索树进行中序遍历,得到一个有序数组。
  2. 遍历该有序数组,计算相邻两个元素的差值,找到其中最小的即可。

代码实现:

class Solution {
public:int getMinimumDifference(TreeNode* root) {vector<int> nums; // 中序遍历得到的有序数组inorder(root, nums);int minDiff = INT_MAX;for (int i = 1; i < nums.size(); i++) {minDiff = min(minDiff, abs(nums[i] - nums[i-1])); // 计算相邻两个元素的差值}return minDiff;}// 中序遍历二叉搜索树void inorder(TreeNode* root, vector<int>& nums) {if (!root) return;inorder(root->left, nums);nums.push_back(root->val);inorder(root->right, nums);}
};

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

  1. 二叉搜索树中的众数

这道题要求我们找到二叉搜索树中出现次数最多的元素。

解题思路:

  1. 对二叉搜索树进行中序遍历,得到一个有序数组。
  2. 遍历该有序数组,计算每个元素出现的次数,找到出现次数最多的元素即可。

代码实现:

class Solution {
public:vector<int> findMode(TreeNode* root) {vector<int> nums; // 中序遍历得到的有序数组inorder(root, nums);vector<int> res; // 众数的结果集int maxCount = 0, count = 0;for (int i = 0; i < nums.size(); i++) {count++; // 统计当前元素出现的次数if (i == nums.size() - 1 || nums[i] != nums[i+1]) { // 如果当前元素和下一个元素不相等,说明当前元素的出现次数统计完成if (count > maxCount) { // 如果当前元素的出现次数大于已知的最大出现次数,更新结果集res.clear();res.push_back(nums[i]);maxCount = count;} else if (count == maxCount) { // 如果当前元素的出现次数等于已知的最大出现次数,加入结果集res.push_back(nums[i]);}count = 0; // 重置计数器}}return res;}// 中序遍历二叉搜索树void inorder(TreeNode* root, vector<int>& nums) {if (!root) return;inorder(root->left, nums);nums.push_back(root->val);inorder(root->right, nums);}
};

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

  1. 二叉树的最近公共祖先

这道题要求我们找到二叉树中任意两个节点的最近公共祖先。

解题思路:

我们可以采用递归的方式来解决该问题。对于当前节点,分别递归遍历其左右子树,如果左子树返回的结果不为空,右子树返回的结果也不为空,则说明当前节点为 p 和 q 的最近公共祖先;如果左子树返回的结果为空,则说明 p 和 q 只可能在右子树中,返回右子树的结果;如果右子树返回的结果为空,则说明 p 和 q 只可能在左子树中,返回左子树的结果。

代码实现:

class Solution {
public:TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {if (!root || root == p || root == q) return root; // 如果当前节点为空或者等于 p 或 q 中的任意一个,直接返回该节点TreeNode* left = lowestCommonAncestor(root->left, p, q); // 递归遍历左子树TreeNode* right = lowestCommonAncestor(root->right, p, q); // 递归遍历右子树if (left && right) return root; // 如果左子树返回的结果不为空,右子树返回的结果也不为空,则当前节点为 p 和 q 的最近公共祖先return left ? left : right; // 如果左子树返回的结果为空,则说明 p 和 q 只可能在右子树中,返回右子树的结果;如果右子树返回的结果为空,则说明 p 和 q 只可能在左子树中,返回左子树的结果。}
};

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

http://www.dinnco.com/news/8592.html

相关文章:

  • 做图表的网站 免费百度优化排名软件
  • ppt模板网站哪个免费地推接单在哪个平台找
  • 安徽美丽乡村建设网站网络优化是做什么的
  • 中国石化工程建设有限公司首页镇江优化推广
  • 电子政务 和网站建设总结软文发稿平台有哪些
  • 网站国际联网备案摘抄一篇新闻
  • 如何查做的网站排名seo案例分析
  • 中国建设工程协会网站网络优化排名培训
  • 做网站的机构网站推广的渠道有哪些
  • 网站如何用微信支付广州企业推广
  • wp网站怎么用插件做html网页北京优化推广公司
  • 网站开发项目介绍自动seo系统
  • 网站点赞怎么做seo教程培训
  • 临沂网站制作外链大全
  • 怎么做网站计划无锡网站制作优化
  • 网站如何进行代码优化上海公司排名
  • 宁波网站制作哪家全面百度的广告
  • 电子产品网站模板推广app赚钱
  • wordpress 优酷免广告插件单页应用seo如何解决
  • 昌吉建设网站百度app旧版本下载
  • wordpress做公司网站廊坊网站建设优化
  • 服务器怎样建设网站可以搜索国外网站的搜索引擎
  • 腾讯云国外服务器深圳优化seo排名
  • 海沧区建设局网站 破路申请免费seo网站优化
  • 图片生成器网站做seo必须有网站吗
  • 献县网站建设价格哈市今日头条最新
  • seo网站结构优化登封网络推广
  • 现在哪些网站做外贸的好做怎么把产品快速宣传并推广
  • 武汉襄阳网站推广公司哪家好seo网络推广排名
  • 做网站很麻烦吗百度一下百度首页登录