-
剑指 Offer 32 - III. 从上到下打印二叉树 III
时间复杂度O(n) 每个节点访问一次
空间复杂度O(n)
12345678910111213141516171819202122232425262728func levelOrder...
-
102. 二叉树的层序遍历
时间复杂度O(n) 每个节点访问一次
空间复杂度O(n)
12345678910111213141516171819202122func levelOrder(_ root: TreeNode?) -> [[Int...
-
105. 从前序与中序遍历序列构造二叉树
递归解法
时间复杂度O(n) n 是节点的个数,每个节点都访问一次
空间复杂度O(n) 除去返回的答案需要的 O(n) 空间之外,我们还需要使用 O(n) 的空间存储哈希映射,以及 O(h)(其中 h 是树的...
-
226. 翻转二叉树
迭代解法
时间复杂度O(n) n 为节点个数,每个节点访问一次
空间复杂度O(n)
12345678910111213141516171819202122// 从根节点开始反转的 func inver...
-
70. 爬楼梯
动态规划
时间复杂度O(n) n 是输入的,循环执行 n 次
空间复杂度O(1) 只用了常数个变量作为辅助空间,故渐进空间复杂度为 O(1)。
123456789101112131415161718192021//...
-
236. 二叉树的最近公共祖先
递归解法
时间复杂度O(n) 其中 N 是二叉树的节点数,所有节点都会被访问一次。
空间复杂度O(n) 其中 N 是二叉树的节点数。递归调用的栈深度取决于二叉树的高度,二叉树最坏情况下为一条链,此时高度为 N,因此空间...
-
81. 搜索旋转排序数组 II
二分法
时间复杂度O(n) 大多情况下每次都减少一般的数据
空间复杂度O(1)
1234567891011121314151617181920212223242526272829303132333435func se...
-
剑指 Offer 11. 旋转数组的最小数字
二分法
时间复杂度O(log n) 在二分查找的过程中,大部分情况都会忽略一半的区间。
空间复杂度O(1)
1234567891011121314151617181920func minArray(_ ...
-
112. 路径总和
递归解法
时间复杂度O(n),每个节点都要访问一次
空间复杂度O(H),其中 H 是树的高度。空间复杂度主要取决于递归时栈空间的开销,最坏情况下,树呈现链状,空间复杂度为 O(N)。平均情况下树的高度与节点数的对数正相关,空间复杂...
-
155. 最小栈
解法
时间复杂度对于题目中的所有操作,时间复杂度均为 O(1)。因为栈的插入、删除与读取操作都是O(1),我们定义的每个操作最多调用栈操作两次。
空间复杂度其中 n 为总操作数。最坏情况下,我们会连续插入 n 个元素,此时两个栈占用...