• 剑指 Offer 32 - III. 从上到下打印二叉树 III

    剑指 Offer 32 - III. 从上到下打印二叉树 III 时间复杂度O(n) 每个节点访问一次 空间复杂度O(n) 12345678910111213141516171819202122232425262728func levelOrder...
  • 102. 二叉树的层序遍历

    102. 二叉树的层序遍历 时间复杂度O(n) 每个节点访问一次 空间复杂度O(n) 12345678910111213141516171819202122func levelOrder(_ root: TreeNode?) -> [[Int...
  • 105. 从前序与中序遍历序列构造二叉树 - 中等

    105. 从前序与中序遍历序列构造二叉树 递归解法 时间复杂度O(n) n 是节点的个数,每个节点都访问一次 空间复杂度O(n) 除去返回的答案需要的 O(n) 空间之外,我们还需要使用 O(n) 的空间存储哈希映射,以及 O(h)(其中 h 是树的...
  • 226. 翻转二叉树 - 简单

    226. 翻转二叉树 迭代解法 时间复杂度O(n) n 为节点个数,每个节点访问一次 空间复杂度O(n) 12345678910111213141516171819202122// 从根节点开始反转的 func inver...
  • 70. 爬楼梯 - 简单

    70. 爬楼梯 动态规划 时间复杂度O(n) n 是输入的,循环执行 n 次 空间复杂度O(1) 只用了常数个变量作为辅助空间,故渐进空间复杂度为 O(1)。 123456789101112131415161718192021//...
  • 236. 二叉树的最近公共祖先 - 中等

    236. 二叉树的最近公共祖先 递归解法 时间复杂度O(n) 其中 N 是二叉树的节点数,所有节点都会被访问一次。 空间复杂度O(n) 其中 N 是二叉树的节点数。递归调用的栈深度取决于二叉树的高度,二叉树最坏情况下为一条链,此时高度为 N,因此空间...
  • 81. 搜索旋转排序数组 II - 中等

    81. 搜索旋转排序数组 II 二分法 时间复杂度O(n) 大多情况下每次都减少一般的数据 空间复杂度O(1) 1234567891011121314151617181920212223242526272829303132333435func se...
  • 剑指 Offer 11. 旋转数组的最小数字 - 简单

    剑指 Offer 11. 旋转数组的最小数字 二分法 时间复杂度O(log n) 在二分查找的过程中,大部分情况都会忽略一半的区间。 空间复杂度O(1) 1234567891011121314151617181920func minArray(_ ...
  • 112. 路径总和 - 简单

    112. 路径总和 递归解法 时间复杂度O(n),每个节点都要访问一次 空间复杂度O(H),其中 H 是树的高度。空间复杂度主要取决于递归时栈空间的开销,最坏情况下,树呈现链状,空间复杂度为 O(N)。平均情况下树的高度与节点数的对数正相关,空间复杂...
  • 155. 最小栈 - 简单

    155. 最小栈 解法 时间复杂度对于题目中的所有操作,时间复杂度均为 O(1)。因为栈的插入、删除与读取操作都是O(1),我们定义的每个操作最多调用栈操作两次。 空间复杂度其中 n 为总操作数。最坏情况下,我们会连续插入 n 个元素,此时两个栈占用...