894. 所有可能的满二叉树满二叉树是一类二叉树,其中每个结点恰好有 0 或 2 个子结点。 返回包含 N 个结点的所有可能满二叉树的列表。 答案的每个元素都是一个可能树的根结点。 答案中每个树的每个结点都必须有 node.val=0。 你可以按任何顺序返回树的最终列表。 这道题怎么说呢?涉及的点如下: 树的构建 递归遍历 真的是很难理解,也很难想出来。我只能参考别人的解法来学习
输出二叉树123456789101112在一个 m*n 的二维字符串数组中输出二叉树,并遵守以下规则:行数 m 应当等于给定二叉树的高度。列数 n 应当总是奇数。根节点的值(以字符串格式给出)应当放在可放置的第一行正中间。根节点所在的行与列会将剩余空间划分为两部分(左下部分和右下部分)。你应该将左子树输出在左下部分,右子树输出在右下部分。左下和右下部分应当有相同的大小。即使一个子树为空而另一个非空
前缀和是一种重要的预处理,能大大降低查询的时间复杂度。可以简单理解为“数列的前 项的和”。 经典例题 https://leetcode-cn.com/problems/range-sum-query-immutable/ 学习资料 https://oi-wiki.org/basic/prefix-sum/ https://leetcode-cn.com/problems/binary-subar
子序列匹配给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,”ace”是”abcde”的一个子序列,而”aec”不是)。 进阶: 如果有大量输入的 S,称作 S1, S2, … , Sk 其中 k >= 10 亿,你需要依次检查它们是否为 T 的子序列。在这种情况下,
滚动数组滚动数组的思想主要是用于优化 o(n)的空间复杂 使其变为 o(1),经常在动态规划中使用。动态规划中,经常会使用到 dp[i]这个状态,这个状态经常通常用来记录某个一项的状态,如果我们在求解的过程中,发现dp[i] 只依赖dp[i-1]或者 依赖 dp[i-2],那么我们就可以用可数的变量来记录它,如 pre,cur.下面,我们具体看下示例. 斐波那契数12345678910111213
方法一:Brian Kernighan 算法 12345678function countOne(int n ){ let ones=0; while(n>0){ n=n&(n-1) ones++ } return ones;}