树
shoushudao111
这个作者很懒,什么都没留下…
展开
-
字典树-插入-search-prefix
字典树的数组实现首先构造一个节点的数据结构,然后构造一个树的数据结构。在构造节点数据结构时注意用child[26]表示其26个可能的子节点,使用isword标记是否是一个单词。在字典树中,跟节点为空,然后时26的n次方这样的存储空间,后面会用哈希表节省存储空间。class Trie { public TrieNode root; /** Initialize yo...原创 2018-11-30 10:32:51 · 284 阅读 · 0 评论 -
337. House Robber III
337. House Robber III思路:看到树,最适合和树的操作相结合的就是递归操作,分析该问题,对于一个节点可分为两种情况:偷和不偷;进而进行递归,此时我们会发现递归中有很多重复操作。思考如何将递归的中间状态值保存下来,见解法二。class Solution { public int rob(TreeNode root) { if(root==nul...原创 2018-11-28 14:46:36 · 146 阅读 · 0 评论 -
572. Subtree of Another Tree
572. Subtree of Another Tree 思路:从s树的每一个节点作为起点,逐个和t相比较。一旦不相等则返回false,知道两者同时为null。难点:在于有两个递归,在第一个递归里面嵌套了第二个递归,这点没有抽象出来,这是第二次遇到这个问题。class Solution { public boolean isSubtree(TreeNode s, TreeNo...原创 2018-11-25 15:17:31 · 112 阅读 · 0 评论 -
95. Unique Binary Search Trees II
95. Unique Binary Search Trees II题目涉及到递归和动态规划,在树的相关题目中有很多是涉及到递归的。在解本道题时,主要有以下难点:(1)动态规划公式,f[i]=f[i]+f[j]*f[i-j-1],(j>=0 && j<=i);(2)克隆左右子树,在克隆左子树时直接克隆即可,但是在克隆右子树时,有一点很巧妙,就是子树的结构时...原创 2018-12-09 16:50:10 · 91 阅读 · 0 评论 -
96. Unique Binary Search Trees
96. Unique Binary Search Trees重点在找出动态规划公式,dp[i]=dp[i]+dp[i-j]*dp[j-1];意义:就是从n节点中依次选取一个节点作为跟节点,那么以跟节点为跟节点的树的个数就是,其左子树的种类乘以右子树的种类。 class Solution { public int numTrees(int n) { int ...原创 2018-12-09 16:59:15 · 83 阅读 · 0 评论