摘要:
思想: 若递归,传入层号。若迭代,使用队列,在每层结束时,加入一个标记。
思想: 目前用两种方法:1 同上,最后将结果反转一下。 2.先求出最大层数,再层序遍历。(也许还有更好的方法) 阅读全文
2014年8月27日 #
摘要:
思想: 以中间点为根节点,按先序顺序来创建 。 阅读全文
摘要:
思想:先序遍历。注意的是: 当只有一个孩子结点时,深度是此孩子结点深度加 1 .
思想: 先序遍历。既要返回左右子树判断的结果,又要返回左右子树的深度进行再判断。
所以要么返回一个 pair, 要么函数参数增加一个引用来传递返回值。 阅读全文
摘要:
思想: 先序遍历。若当前结点为空,返回 false; 不为空,则加上其值,若为叶子结点,则判断一次。
注意: 非路径和, 而是到叶子结点的路径和。例如: {1, 2} 1 返回: false
思路同上: 只是要记下路径。 阅读全文
摘要:
思想: 如 Hints. 阅读全文
摘要:
思想:动态规划。 D[i][j] = D[i][j-1] + (T[i-1] == S[j-1] ? D[i-1][j-1] : 0);
改进后:空间复杂度 O(T.size()). 阅读全文
摘要:
思想: 常量空间要求,决定了不能使用递归。满二叉树,简单循环,每次修改一层即可。
思想同上: 但是下一层最开始结点和连接过程中链表的第一个结点不易确定,所以需要设定两个变量来保存。 阅读全文
摘要:
思想: 简单动态规划。 阅读全文
摘要:
注意: 限制条件: 先买后卖(不同天)。
思想: 买了后,1. 若以后价格不变,不买不卖。 1. 更价格低,重新买。2. 价格升高,假定抛售,更新一下利润值。
思想:求出所有非递减序列两端绝对值之和。我贴在 leedcode 的代码和证明:
思想:动态规划。 记录下从各位置(含)开始之前的最大利润和此时开始到最后的最大利润。 阅读全文
摘要:
思想: 后序遍历。注意路径的连通: 结点不为空时要返回 max( max(leftV, rightV)+rootV, rootV); 阅读全文