摘要:
思路 方法一:暴力递归法 (自顶向下的递归) 使用递归编写一个求高度的函数,之后使用先序遍历每个结点,判断左右子树的高度差是否满足要求。 这种方法每次判断一个结点都需要使用递归先求出其左右子树的高度,比如下面这棵树,判断1的时候,使用递归求了2,3, 4的高度,判断2的时候,又递归求了3,4,的高度 阅读全文
摘要:
思路 方法:递归 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode(int x) 阅读全文
摘要:
思路 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode(int x) : val( 阅读全文
摘要:
思路 方法一:顺序查找 顺序查找第一个nums[i]不等于下标 i 的数,这时的下标 i 就是缺少的数。 复杂度分析 时间复杂度:O(n) 空间复杂度:O(1) 方法二:二分法 复杂度分析 时间复杂度:O(logn) 空间复杂度:O(1) 1 class Solution { 2 public: 3 阅读全文
摘要:
思路 排序数组中的搜索问题,首先想到 二分法 解决。 方法一:二分法之一 (类似暴力) (1) 用二分法找到其中一个target所在的位置 (2) 之后在此位置前后顺序查找依次计数target的出现次数。(有点暴力,在方法二对此有改进) 复杂度分析 时间复杂度:最坏情况下O(n) 空间复杂度:O(1 阅读全文