三维形体的表面积
一、LeetCode题解
瞧一瞧~
- 博健的LeetCode题解:Gitbook版本传送门
- 博健的LeetCode题解:CSDN传送门
- 有趣的CSS:Gitbook传送门
- 前端进阶笔记:Gitbook传送门
二、算法题
题目
给定一个有序整数数组,元素各不相同且按升序排列,编写一个算法,创建一棵高度最小的二叉搜索树。
解法一 (递归)
思路
前提:遍历的是一个有序数组
-
确定根节点
- 为了保证树的高度最小,需要尽可能的保证左子树和右子树的高度差不超过1
-
生成左子树
-
生成右子树
-
时间复杂度:O(n),递归涉及到每一个元素。
-
空间复杂度:O(n)。
代码
/**
* Definition for a binary tree node.
* function TreeNode(val) {
* this.val = val;
* this.left = this.right = null;
* }
*/
/**
* @param {number[]} nums
* @return {TreeNode}
*/
var sortedArrayToBST = function(nums) {
if(!nums.length) return null
var mid = nums.length >> 1
var n = new TreeNode(nums[mid])
n.left = sortedArrayToBST(nums.slice(0, mid))
n.right = sortedArrayToBST(nums.slice(mid+1))
return n
};