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

茂名营销型网站建设东莞网站网络公司

茂名营销型网站建设,东莞网站网络公司,怎么做论坛的网站,学编程的正规学校将有序数组转换为二叉搜索树 https://leetcode.cn/problems/convert-sorted-array-to-binary-search-tree/description/ 描述 给你一个整数数组 nums #xff0c;其中元素已经按 升序 排列请你将其转换为一棵 平衡 二叉搜索树 示例 1 输入#xff1a;nums [-10,-3,0,5,9…将有序数组转换为二叉搜索树 https://leetcode.cn/problems/convert-sorted-array-to-binary-search-tree/description/ 描述 给你一个整数数组 nums 其中元素已经按 升序 排列请你将其转换为一棵 平衡 二叉搜索树 示例 1 输入nums [-10,-3,0,5,9] 输出[0,-3,9,-10,null,5] 解释[0,-10,5,null,-3,null,9] 也将被视为正确答案示例 2 输入nums [1,3] 输出[3,1] 解释[1,null,3] 和 [3,1] 都是高度平衡二叉搜索树。提示 1 nums.length 1 0 4 10^4 104- 1 0 4 10^4 104 nums[i] 1 0 4 10^4 104nums 按 严格递增 顺序排列 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 (valundefined ? 0 : val)* this.left (leftundefined ? null : left)* this.right (rightundefined ? null : right)* }* }*/function sortedArrayToBST(nums: number[]): TreeNode | null {return helper(nums, 0, nums.length - 1); }function helper(nums: number[], left: number, right: number): TreeNode | null {if (left right) return null;// Preventing overflow for large arrays by using the following formulalet mid left Math.floor((right - left) / 2);let root new TreeNode(nums[mid]);root.left helper(nums, left, mid - 1);root.right helper(nums, mid 1, right);return root; }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 (valundefined ? 0 : val)* this.left (leftundefined ? null : left)* this.right (rightundefined ? null : right)* }* }*/function sortedArrayToBST(nums: number[]): TreeNode | null {return helper(nums, 0, nums.length - 1); }function helper(nums: number[], left: number, right: number): TreeNode | null {if (left right) return null;// 总是选择中间位置右边的数字作为根节点let mid Math.floor((left right 1) / 2); // 加1保证了当长度为偶数时取右中位数let root new TreeNode(nums[mid]);root.left helper(nums, left, mid - 1);root.right helper(nums, mid 1, right);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 (valundefined ? 0 : val)* this.left (leftundefined ? null : left)* this.right (rightundefined ? null : right)* }* }*/function sortedArrayToBST(nums: number[]): TreeNode | null {return helper(0, nums.length - 1);function helper(left: number, right: number): TreeNode | null {if (left right) return null;// 选择任意一个中间位置数字作为根节点let mid: number;if ((right - left) % 2 0) {// 如果左右边界之间是奇数个元素只有一个中间值mid Math.floor((left right) / 2);} else {// 如果左右边界之间是偶数个元素随机选择一个中间值mid left Math.floor((right - left Math.random()) / 2);}const root new TreeNode(nums[mid]);root.left helper(left, mid - 1);root.right helper(mid 1, right);return root;} }4 ) 方案4: 简单版本 /*** 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 (valundefined ? 0 : val)* this.left (leftundefined ? null : left)* this.right (rightundefined ? null : right)* }* }*/function sortedArrayToBST(nums: number[]): TreeNode | null {if(!nums.length) return null// 二叉搜索树的中序遍历就是升序列表// 数组中间的位置可以作为树的根节点const mid Math.floor(nums.length / 2)const root new TreeNode(nums[mid])root.left sortedArrayToBST(nums.slice(0,mid))root.right sortedArrayToBST(nums.slice(mid1))return root }
http://www.zqtcl.cn/news/69579/

相关文章:

  • 门头沟手机网站建设wordpress oauth
  • 明星个人网站建设需求分析成都 建设网站
  • 网站宣传的方法有哪些wordpress recaptcha
  • 站长网站工具wordpress不显示目录文章
  • 网站推广服务商wordpress加速优化插件
  • 怎么免费建立自己的网站手机端网页界面设计
  • saas云建站平台源码wordpress 主题库
  • 专业做网站排名多少钱网站设计的优缺点
  • 做那个网站的图客比较好手机网站菜单代码
  • 网站制作不用备案做一个网站中的搜索功能怎么做
  • 做网站界面的软件wordpress+简码使用
  • 龙口网站制作wordpress安装文件下载
  • 线上海报设计网站互联网公司设计
  • 电子政务门户网站建设项目招标采购吉林整站优化
  • 网上商城功能模块图seo排名优化软件有用吗
  • 最新经济新闻头条外贸seo是啥
  • 经过学习网站开发后的心得体会怎样建官方网站
  • 公司做企业网站须知识图 WordPress
  • 做企业网站一般用什么服务器网上商城都有哪些
  • 凡科网站建设网站网络推广合同范本
  • wordpress首页加登录衡水seo营销
  • 第一免费营销型网站网络服务提供者知道或者应当知道网络用户利用其网络服务侵害他
  • 网站开发的方案南京奥美广告公司
  • 优秀国外网站设计赏析电商sku是什么意思
  • 动漫做3d游戏下载网站企业网站建设费怎么入账
  • 设计师的网站大气绿色网站模板
  • 搭建博客网站腾讯建设网站视频下载
  • 福建省住房和城乡建设厅的网站电商运营推广是做什么的
  • 网站开发企划书如何给wordpress文章排版
  • 做网站赚钱的QQ群佛山小学网站建设