刷题随记 - 8. 构造最大二叉树(654)
作者:互联网
LeetCode 654 medium
https://leetcode-cn.com/problems/maximum-binary-tree/
思路
- 找最大值
- 找最大值下标
- 用最大值下标分别构建出子数组,递归调用
- 根节点的操作就是构建节点
解题
var constructMaximumBinaryTree = function(nums) {
if(nums.length === 0){
return null
}
let maxNumber = Math.max(...nums)
let root = new TreeNode(maxNumber)
let indexOfMax = nums.indexOf(maxNumber)
root.left = constructMaximumBinaryTree(nums.slice(0, indexOfMax)) // slice方法不包含indexOfMax
root.right = constructMaximumBinaryTree(nums.slice(indexOfMax + 1))
return root
};
记录的点
- js的三个点,将数组等东西拆成一个个的 https://www.cnblogs.com/makalochen/p/13967875.html
- 数组方法
slice
左闭右开 返回子数组 - 数组方法
indexOf
返回对应值的下标 - 数组方法
splice
主要删除,可以添加第三个参数来达到替换
splice
标签:maxNumber,slice,nums,indexOfMax,654,二叉树,数组,root,随记 来源: https://blog.csdn.net/qq_44787943/article/details/117810139