Problem: 1339. 分裂二叉树的最大乘积
思路题意可以理解为:将整个二叉树从任意一个节点(除根节点)摘下,使该节点成为一个新的根,从而将整个二叉树拆分为两颗子树。我们需要找到一个节点,从这个节点摘下后两棵子树的和的乘积最大。
我们可以...
原题地址:https://leetcode.cn/problems/restore-the-array/
题解设dp[i]为s的子串s[0,i]的方案数
令j遍历i~0,自然地,我们可以将子串进一步切分为s[0,j-1]和[j,i]两部分
同时,...
Problem: 1463. 摘樱桃 II
思路定义在grid[0][0]处的机器人为a,在grid[0][grid[0].size-1]处的机器人为b
由题意我们可以知道,在任意一步中,机器人a与机器人b都是在同一行的
dp[row][a][...
Problem: 1547. 切棍子的最小成本
思路算上起始点(0)和末尾点(n),我们一共可以将整个棍子分为n+1个节点,我们可以建立一个Listnodes,按顺序记录整根棍子中的所有切割点,并包含起始点和末尾点
以该图为例,我们知道cut...
Problem: 1575. 统计所有可行路径
思路基于BFS的思路,设dp[a][b]为从start出发,燃油为fuel,达到城市a时剩余燃油b的可能路径
自然地,我们应当从dp[start][fuel]开始考虑,遍历locations中的所...
Problem: 1626. 无矛盾的最佳球队
思路参照题解思路
由题意可知,一个队伍中年龄较大的球员必定分数大于年龄较小的成员,换句话说,球队中年龄最大的球员也必然是分数最高的球员,我们可以按照年龄或者分数的任意一者对队伍中的球员排序,则此时...
Problem: 1639. 通过给定词典构造目标字符串的方案数
[TOC]
初始思路将整个words抽象成一个char类型的矩阵,则题干可以理解为:有一个初始指向第0列列指针chrIndex,我们每次可以进行两种操作中的一种:
将列指针向...
Problem: 1770. 执行乘法运算的最大分数
常规思路设dp[start][end]是数组当前剩余元素为子数组nums[start...(end-1)]时能够得到的最大分数,即左闭右开区间。这样做是考虑到存在拿到最后无剩余元素的情况(如...
Problem: 2328. 网格图中递增路径的数目
思路如果我们规定:矩阵中相邻的两个点,如果a严格大于b的话,构成一条b到a的原子路径,那么这道题可以理解为:给你一个有向图,求图中的所有路径数
由于题干限定了路径是必须是一条递增序列,因此可...
原题地址:https://leetcode.cn/problems/longest-valid-parentheses/
题解参考题解思路
设dp[i]是以s.charAt(i)结尾的最长连续有效括号
我们根据s.charAt(i)的不同分类讨论:...