题目描述 输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 思路 时间复杂度O(n),空间复杂度O(n)。 代码 ...
分类:
其他好文 时间:
2020-02-22 15:37:54
阅读次数:
69
传送门①:关于计算时间复杂度和空间复杂度 传送门②:关于时间复杂度的详解 一、定义 一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f(n)的极限值为不等于零的常数,则称f(n)是T(n)的同数量级函数。记作 ...
分类:
其他好文 时间:
2020-02-21 00:22:36
阅读次数:
82
题意 给定一个只包括 的字符串,判断字符串是否能够成合法的括号序列。 思路 直接用栈模拟,时间复杂度$O(n)$,~~但一共就这三种类型,我可以直接三个变量标记就可以了,这样空间复杂度$O(1)$。~~我看错了,原来括号不可以这样嵌套: ,所以只好用栈了(实际上用数组模拟了栈)。 代码 总结 我爱水 ...
分类:
其他好文 时间:
2020-02-19 20:55:44
阅读次数:
61
题意 从数组中找出满足和为 的四元组。 思路 想法1:暴力,$O(n^4)$。 想法2:排序 + 指针。思路类似前面的三数之和,只不过这里的指针多了一个,后两个指针相遇时第二个指针后移一个单位。时间复杂度:$O(n^3)$,空间复杂度:$O(1)$。 代码 总结 排序 + 指针! ...
分类:
其他好文 时间:
2020-02-19 16:49:46
阅读次数:
46
题意 从给定的数组中选出三个数,使得三个数的和最接近目标值。 思路 想法1:暴力,$O(n^3)$。 想法2:排序 + 双指针。上题中的想法可直接拿过来用,改一下返回的结果就可以了。时间复杂度:$O(n^2)$,空间复杂度:$O(n)$。 代码 总结 排序 + 指针。 ...
分类:
其他好文 时间:
2020-02-19 13:21:27
阅读次数:
65
题意 定义一个三元组为$a+b+c = 0$,从包含$n$个整数的数组中,找出所有满足条件的不重复三元组。 思路 想法1:暴力,$O(n^3)$。 想法2:用“桶”记录下每个数值出现的次数,遍历前两个数,判断第三个数是否存在。时间复杂度:$O(n^2)$,空间复杂度:$O(n)$。 想法3:排序 + ...
分类:
其他好文 时间:
2020-02-19 12:59:07
阅读次数:
54
题目描述 输入一个链表,输出该链表中倒数第k个结点。 思路 快慢指针注意边界。 时间复杂度O(n),空间复杂度O(1)。 代码 java / public class ListNode { int val; ListNode next = null; ListNode(int val) { this ...
分类:
其他好文 时间:
2020-02-18 18:38:25
阅读次数:
70
问题描述: 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 问总共有多少条不同的路径? 例如,上图是一个7 x 3 的网格。有多少可能的路径?LeetCode ...
分类:
其他好文 时间:
2020-02-18 09:20:47
阅读次数:
59
"Fibonacci Sequence 维基百科" $F(n) = F(n 1)+F(n 2)$,其中 $F(0)=0, F(1)=1$,即该数列由 0 和 1 开始,之后的数字由相邻的前两项相加而得出。 递归 时间复杂度 $O(n)$,空间复杂度 $O(1)$ 矩阵 $F(n)$ 和 $F(n 1 ...
分类:
其他好文 时间:
2020-02-17 14:21:50
阅读次数:
73