leetcode95-96 Unique Binary Search Trees I-II

2017-08-06
阅读 2 分钟
2.1k
如果只是单纯的计算二叉树的数量,其实这就完全转化成了一道规律题。我们可以从1开始寻找规律。1: 11,2: 12, 211,2,3:123,132,213,312,321

leetcode97. Interleaving String

2017-07-24
阅读 4 分钟
1.9k
乍一看这题可以通过递归的方式来求解。我们可以同时判断当前下标s1和s2的元素是不是和s3当前下标的元素相同。如果相同,就进入下一轮递归。代码如下:

leetcode216. Combination Sum III

2017-07-22
阅读 2 分钟
1.3k
这是一道典型的backtracking的题目,通过递归的方式记录尝试的节点,如果成功则加入结果集,如果失败则返回上一个尝试的节点进行下一种尝试。

leetcode113. Path Sum II

2017-07-16
阅读 2 分钟
2.1k
题目要求 {代码...} 从树中找到所有符合条件的从根节点到叶节点路径,条件即为树上所有节点值的和等于目标值。Path Sum I可以参考这篇博客 思路和代码 其实这里本质上的思路并没有改变,还是采用深度优先算法,采用自顶向下递归的方式将符合条件的结果放入结果集中。 {代码...} 想要了解更多开发技术,面试教程以及互联...

leetcode37 Sudoku Solver

2017-07-11
阅读 6 分钟
1.9k
不使用数据结构意味着我们自己在每一次遇到一个空格时,需要在board中对该空格所在的行,列以及方块进行遍历,判断填入什么数字是合适的。并将当前的假象结果带入下一轮的遍历之中。如果最终遍历失败,则逐级返回,恢复上一轮遍历的状态,并填入下一个合理的假想值后继续遍历。这里涉及的时间复杂度是很高的,毕竟只是遍...

leetcode77. Combinations

2017-07-05
阅读 2 分钟
2k
题目要求 {代码...} 有整数从1到n,问从中任选两个数有多少排列组合的结果(顺序无关) 思路一:利用链表(超时问题) 这题其实是动态编码的一个题目,可以通过链表实现队列存储前一种情况。再在前一种情况下继续下一轮的遍历,并将结果添加到队列末尾。代码如下: {代码...} 但是在这里存在超时问题,归根结底在于每一...