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

做网站甲方乙方公司的区别装网要多少钱

做网站甲方乙方公司的区别,装网要多少钱,网站预算怎么做,免费下载的网站最大二叉树 https://leetcode.cn/problems/maximum-binary-tree/ 描述 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值递归地在最大值 左边 的 子数组前缀上 构建左子树递归地在最大值…

最大二叉树

  • https://leetcode.cn/problems/maximum-binary-tree/

描述

  • 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建:
    • 创建一个根节点,其值为 nums 中的最大值
    • 递归地在最大值 左边 的 子数组前缀上 构建左子树
    • 递归地在最大值 右边 的 子数组后缀上 构建右子树
    • 返回 nums 构建的 最大二叉树

示例 1

输入:nums = [3,2,1,6,0,5]
输出:[6,3,5,null,2,0,null,null,1]

解释:递归调用如下所示:

  • [3,2,1,6,0,5] 中的最大值是 6 ,左边部分是 [3,2,1] ,右边部分是 [0,5] 。
    • [3,2,1] 中的最大值是 3 ,左边部分是 [] ,右边部分是 [2,1] 。
      • 空数组,无子节点。
      • [2,1] 中的最大值是 2 ,左边部分是 [] ,右边部分是 [1] 。
        • 空数组,无子节点。
        • 只有一个元素,所以子节点是一个值为 1 的节点。
    • [0,5] 中的最大值是 5 ,左边部分是 [0] ,右边部分是 [] 。
      • 只有一个元素,所以子节点是一个值为 0 的节点。
      • 空数组,无子节点。

示例 2

输入:nums = [3,2,1]
输出:[3,null,2,null,1]

提示

  • 1 <= nums.length <= 1000
  • 0 <= nums[i] <= 1000
  • nums 中的所有整数 互不相同

Typescript 版算法实现


1 ) 方案1:递归

/*** Definition for a binary tree node.* class TreeNode {*     val: number*     left: TreeNode | null*     right: TreeNode | null*     constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {*         this.val = (val===undefined ? 0 : val)*         this.left = (left===undefined ? null : left)*         this.right = (right===undefined ? null : right)*     }* }*/function constructMaximumBinaryTree(nums: number[]): TreeNode | null {const construct = (nums, left, right) => {if (left > right) return null;let best = left;for (let i = left + 1; i <= right; ++i) {if (nums[i] > nums[best]) {best = i;}}const node = new TreeNode(nums[best]);node.left = construct(nums, left, best - 1);node.right = construct(nums, best + 1, right);return node;}return construct(nums, 0, nums.length - 1);
};

2 ) 方案2:单调栈

/*** Definition for a binary tree node.* class TreeNode {*     val: number*     left: TreeNode | null*     right: TreeNode | null*     constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {*         this.val = (val===undefined ? 0 : val)*         this.left = (left===undefined ? null : left)*         this.right = (right===undefined ? null : right)*     }* }*/function constructMaximumBinaryTree(nums: number[]): TreeNode | null {const n = nums.length;const stack = [];const left = new Array(n).fill(-1);const right = new Array(n).fill(-1);const tree = new Array(n).fill(-1);for (let i = 0; i < n; ++i) {tree[i] = new TreeNode(nums[i]);while (stack.length && nums[i] > nums[stack[stack.length - 1]]) {right[stack.pop()] = i;}if (stack.length) {left[i] = stack[stack.length - 1];}stack.push(i);}let root = null;for (let i = 0; i < n; ++i) {if (left[i] === -1 && right[i] === -1) {root = tree[i];} else if (right[i] === -1 || (left[i] !== -1 && nums[left[i]] < nums[right[i]])) {tree[left[i]].right = tree[i];} else {tree[right[i]].left = tree[i];}}return root;
};

3 ) 方案3:单调栈优化

/*** Definition for a binary tree node.* class TreeNode {*     val: number*     left: TreeNode | null*     right: TreeNode | null*     constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {*         this.val = (val===undefined ? 0 : val)*         this.left = (left===undefined ? null : left)*         this.right = (right===undefined ? null : right)*     }* }*/function constructMaximumBinaryTree(nums: number[]): TreeNode | null {const n = nums.length;const stack = [];const tree = new Array(n).fill(0);for (let i = 0; i < n; ++i) {tree[i] = new TreeNode(nums[i]);while (stack.length && nums[i] > nums[stack[stack.length - 1]]) {tree[i].left = tree[stack[stack.length - 1]];stack.pop();}if (stack.length) {tree[stack[stack.length - 1]].right = tree[i];}stack.push(i);}return tree[stack[0]];
};
http://www.yayakq.cn/news/442192/

相关文章:

  • 做伞的外国网站网站建设需要会一些啥
  • 工业设计参考网站模板建站费用
  • 上海化工网站建设给中小企业提供网站建设服务
  • 公司网站做的一样算不算侵权wordpress编辑器不习惯
  • 百度最新泛站群程序百度收录网站的图片
  • 免费无版权图片网站建筑营销型网站
  • 专业医院网站建设淘宝上找人做网站
  • 泉州网站建设是什么意思wordpress 代码 高亮
  • 企业单页网站模板手机 网站
  • 做图表的网站知乎重庆人才招聘网官网
  • 沈阳做一个网站需要多少钱建e网室内设计网官网vr全景
  • 成都建设网站公司简介谈谈你对网络营销的看法
  • 网页网站开发大概多少钱app下载排行
  • 做django后台网站网站建设套模板
  • 网站系统架构图wordpress菜单高亮
  • 自己做聊天背景网站青海最新信息
  • 网站如何做搜索引擎优化网页游戏破解版
  • 做网站视频的赚钱吗wordpress调用文章缩略图
  • 手机网站怎么做的好外贸流程询盘发盘
  • 优化学校网站建设方案免费做封面网站
  • 长春网站建设sok电话网站域名到期
  • 哪家好做网站长春seo外包
  • 网站建设备案优化之看wordpress 帮助中心
  • 搜索推广网站哪家做的最好wordpress去除底部
  • 新网站推广方法wordpress主题带卡密
  • 设计网站如何推广方案合肥 做网站的公司
  • 网站同时做竞价和seo上上海网站建设设计
  • 邯郸网站建设恋家安卓开发app用什么软件
  • 多页网站制作建立网站找什么公司
  • 怎么自己做网站游戏公共资源交易中心属于哪个部门