Problem: 449. 序列化和反序列化二叉搜索树
思路如果按照中序遍历打印二叉搜索树,会直接打印出顺序序列,这时该树的根节点隐藏在序列中间,整个序列的组成为:左子树序列+根节点+右子树序列,由于整个数组都是顺序的,我们无法分辨出序列的哪个...
Problem: 2240. 买钢笔和铅笔的方案数
思路设dp[i]为恰好花费i元能够购买的组合方案数
从背包dp的角度上出发思考这道题,金额money为背包,而价格cost为物品,由于每个物品可以被购买无限次,这道题本质上是一道完全背包求组合...
Problem: 1654. 到家的最少跳跃次数
思路
跳蚤可以往前跳 超过 它的家的位置,但是它 不能跳到负整数 的位置。
这句话指明了本道题中位置的下边界为0,但是没有上边界。由于跳蚤可以无限次地向前跳跃,如果我们不去人为找到一个上边界,...
Problem: 823. 带因子的二叉树
思路设dp[i]为以arr[i]为根节点能够构建出的二叉树数量,对于任意a、b满足arr[a]*arr[b]==arr[i],考虑以下两种情况:
当a==b时,能够构建出的二叉树数量为dp[a]*d...
Problem: 57. 插入区间
思路由于题干指明了原区间序列是有序且无重叠的,可以为我们省去许多功夫
我们用一个min和一个max记录当前合并区间的左边界和右边界,且初始化为newInterval的左边界和右边界
顺序遍历intervals...
Problem: 1448. 统计二叉树中好节点的数目
思路基于深度优先搜索的思路,在递归函数goodNodes中每次传入从根节点到当前节点的最大值,则以当前节点为根的子树的好节点数量为左子树的好节点数量+右子树的好节点数量+当前节点是否为好节...
Problem: 97. 交错字符串
思路设dp[s1len][s2len] = true为s1的前s1len个字符和s2的前s2len个字符一共可以匹配s3的前s1len+s2len个字符
当前s1能够匹配的最后一个字符的索引为s1len-...
Problem: 27. 移除元素
思路设deleted为左指针,available为右指针,令deleted从左至右找第一个待删除的值,令available从右至左找第一个需要保留的值,将available的值覆盖到deleted上,此时即完...
Problem: 2620. 计数器
123456789101112131415161718/** * @param {number} n * @return {Function} counter */v...
Problem: 2626. 数组归约运算
12345678910111213/** * @param {number[]} nums * @param {Function} fn * @param ...