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

国外优质网站做网站的标准流程

国外优质网站,做网站的标准流程,苏州能做网站,简约智能设备制造公司网站class Solution {vector<int> nums; // 用来存储二叉树节点值的数组 public:bool isValidBST(TreeNode* root) {inorder(root); // 中序遍历二叉树&#xff0c;填充 nums 数组// 遍历 nums 数组&#xff0c;检查是否为严格递增序列for(int i0; i<nums.size()-1; i){…
class Solution {vector<int> nums;  // 用来存储二叉树节点值的数组
public:bool isValidBST(TreeNode* root) {inorder(root);  // 中序遍历二叉树,填充 nums 数组// 遍历 nums 数组,检查是否为严格递增序列for(int i=0; i<nums.size()-1; i++){if(nums[i] >= nums[i+1]){  // 如果当前元素不小于下一个元素,说明不是严格递增的return false;  // 不是有效的二叉搜索树}}return true;  // 如果整个数组都是严格递增的,说明是有效的二叉搜索树}private:// 中序遍历:遍历树的左子树、根节点和右子树void inorder(TreeNode* root){if(root != nullptr){  // 如果当前节点不是空节点inorder(root->left);  // 递归遍历左子树nums.push_back(root->val);  // 将当前节点的值加入 nums 数组inorder(root->right);  // 递归遍历右子树}}
};

这段代码是一个验证二叉搜索树(BST)是否有效的算法。通过中序遍历二叉树,将节点的值存储在一个数组中,然后检查数组是否是严格递增的。二叉搜索树的性质是:左子树的值小于根节点的值,右子树的值大于根节点的值,而中序遍历会得到一个按升序排列的节点值序列。

思路:

1. 中序遍历:首先我们要遍历二叉树,使用中序遍历。对于一棵合法的二叉搜索树,使用中序遍历会得到一个严格递增的节点值序列

2. 将节点值存储到数组:通过递归进行中序遍历,将每个节点的值按顺序存储到一个数组 nums 中。

3. 验证递增性:中序遍历完成后,检查 nums 数组中的值是否是严格递增的。如果有任何两个相邻的元素不满足递增条件,返回 false,表示这不是一棵有效的二叉搜索树。

4. 返回结果:如果数组是严格递增的,说明这棵树符合二叉搜索树的要求,返回 true。

运行步骤:

假设我们有以下二叉树:

      2

     / \

    1   3

1. 初始状态

• nums 数组为空。

2. 执行 inorder(root):

• 调用 inorder(2),根节点是 2。

• 递归调用 inorder(1)(左子树)。

• 在 inorder(1) 中,递归调用 inorder(null)(空左子树),然后将 1 加入 nums 数组。

• 返回并继续遍历右子树(inorder(null)),没有元素。

• 现在,nums = [1]。

• 返回 inorder(2),将 2 加入 nums 数组。

• 继续遍历右子树,调用 inorder(3)。

• 在 inorder(3) 中,递归调用 inorder(null)(空左子树),将 3 加入 nums 数组。

• 继续遍历右子树(inorder(null)),没有元素。

• 现在,nums = [1, 2, 3]。

• inorder 遍历结束后,nums = [1, 2, 3]。

3. 执行递增性检查

• nums = [1, 2, 3]。

• 遍历数组:

• 比较 nums[0] 和 nums[1],即 1 和 2,1 < 2,继续检查。

• 比较 nums[1] 和 nums[2],即 2 和 3,2 < 3,继续检查。

• 所有检查都通过,返回 true。

边界情况:

空树:如果根节点是空的,inorder 函数不会执行任何操作,nums 数组会保持为空。此时,直接返回 true,因为空树是有效的二叉搜索树。

只有一个节点的树:即使树只有一个节点,nums 数组也只会包含一个元素,严格递增性自然成立,返回 true。

时间复杂度:

中序遍历:时间复杂度是 O(n),其中 n 是树中节点的数量,因为我们遍历了每个节点一次。

数组检查:时间复杂度是 O(n),需要检查 nums 数组中的所有元素。

总的时间复杂度:O(n)。

空间复杂度:

• 我们使用了一个 nums 数组来存储树的节点值,空间复杂度是 O(n),其中 n 是树中节点的数量。

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

相关文章:

  • 宁波市建设银行网站自助定制网站开发公司
  • 网站建设方案范文广州互联网企业100强
  • 如何做网站与网页wordpress post title
  • 什么是网站建设的重点做商城网站用什么框架
  • 做网站宁波装修网站推广方案
  • 美橙网站备案照片背景设计类专业好找工作吗
  • 数据统计网站lamp wordpress
  • 网站建设gxjzdrj微信小程序开发零基础入门
  • 设计商标的网站做网站怎么上传图片
  • 对网站进行优化邯郸市教育局官网
  • 企业网站 优秀三沙网站建设
  • 建网站需要怎么做厦门市建设质量安全协会网站
  • 搞笑网站全站源码网站建设培训班
  • 精湛的网站设计网络营销软件推广
  • 网站制作 文案网站备案每年一次吗
  • 网站管理后台登录地址比wordpress轻量的
  • 宣传网站制作机械加工
  • 微信公众号怎么做成微网站做旅游网约车的网站
  • 南昌网站建设风格郑州有没有厉害的seo顾问
  • 兰溪市建设局官方网站一个网站备案两个域名
  • net网站开发net网站开发百度app制作网站
  • 网站开发网上接单雅安 网站建设
  • wordpress 单页导航手机优化大师官网
  • 濮阳建网站的做网站项目计划书
  • 漳州网站建设喊博大科技淘宝客的网站是怎么做的
  • 选择热门网站做推广的原因设计网站怎么做
  • esc怎么做网站要建立网站和账号违法违规行为数据库和什么黑名单
  • .net电子商城网站开发设计上海开公司
  • 企业站群cms企业在什么网站推广
  • 西平网站建设网站建设后的优势