摘要: 131. Palindrome Partitioning 回溯 直接在s上进行操作。 class Solution(object): def partition(self, s): """ :type s: str :rtype: List[List[str]] """ def backtracki 阅读全文
posted @ 2017-08-30 17:06 banananana 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 216. 组合总和 III 题意 找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。说明:所有数字都是正整数。解集不能包含重复的组合。 示例 1:输入: k = 3, n = 7输出: [[1,2,4]]示例 2:输入: k = 3, 阅读全文
posted @ 2017-08-30 16:03 banananana 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 113. Path Sum II 这里需要注意的是,不要直接递归而不判断是否存在子结点,那么样做的后果就是左结点的遍历和右结点的遍历生成相同的结果,导致最后的结果中都存在重复路径。 DFS class Solution(object): def pathSum(self, root, sum): " 阅读全文
posted @ 2017-08-30 14:33 banananana 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 257. Binary Tree Paths class Solution(object): def binaryTreePaths(self, root): """ :type root: TreeNode :rtype: List[str] """ def helper(node, path): 阅读全文
posted @ 2017-08-30 13:49 banananana 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 104. Maximum Depth of Binary Tree class Solution(object): res = 1 def maxDepth(self, root): """ :type root: TreeNode :rtype: int """ def helper(cur, p 阅读全文
posted @ 2017-08-30 13:28 banananana 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 101. Symmetric Tree 题意:判断是否是镜像树,也就是结点的最左子树是否和最右子树是否是相等的。 DFS 思路:如果想比较结点的最左子树和最右子树,那么这就是后序遍历,也就是左右中的顺序。 class Solution(object): def isSymmetric(self, r 阅读全文
posted @ 2017-08-30 13:08 banananana 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 100. Same Tree DFS 递归 class Solution(object): def isSameTree(self, p, q): """ :type p: TreeNode :type q: TreeNode :rtype: bool """ if not p and not q: 阅读全文
posted @ 2017-08-30 12:38 banananana 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 392. Is Subsequence 这道题目可以使用很多种解法,包括是动态规划等等。 动态规划 s为匹配字符串,t为给定字符串假设dp[i][j]表示t从开始到第i个字符时对应s从开头到第j个字符,s所否是t的子序列。 分析:在比较的过程中,如果t[i]不等于s[j],则忽略掉当前的字符,取之前 阅读全文
posted @ 2017-08-30 12:09 banananana 阅读(199) 评论(0) 推荐(0) 编辑