LeetCode
文章平均质量分 59
WeiXiao_Hyy
这个作者很懒,什么都没留下…
展开
-
LeetCode-1483. 树节点的第 K 个祖先
个祖先节点是从该节点到根节点路径上的第。树以父节点数组的形式给出,其中。求树上任意两个节点的最近公共祖先模版方法。个父节点,以此类推。原创 2024-01-26 10:35:01 · 226 阅读 · 0 评论 -
LeetCode-2865. 美丽塔 I
f[i]为前i个满足题意的最大值,j为当前i从左往右第一个小于或等于的下标(单调栈维护),同理右边g[i]也可以得出,结果为。对于所有 i原创 2024-01-24 15:18:44 · 975 阅读 · 0 评论 -
LeetCode-410.分割数组的最大值
状态方程定义: f[i][j] = Math.min(f[i][j], Math.max(f[k][j-1]+sub(i)-sub(k))) #sub为前缀和。给定一个非负整数数组 nums 和一个整数 k ,你需要将这个数组分成 k 个非空的连续子数组。设计一个算法使得这 k 个子数组各自和的最大值最小。初始化:k=0状态不存在,则f[0][0]=0,需要求最小值则将其余的设置为最大值即可。数组定义:f[i][j]: 前i个数字,分为j段各自和的最大值。原创 2024-01-21 09:48:49 · 456 阅读 · 0 评论 -
LeetCode-2645. 构造有效字符串的最少插入数
脑筋急转弯,最多一共需要3*len-n的个数,但是去除ac这种在一起的abc即求s[i]>=s[i+1]的个数*3-len。给你一个字符串 word ,你可以向其中任何位置插入 “a”、“b” 或 “c” 任意次,返回使 word。解释:在 “b” 之前插入 “a” ,在 “b” 之后插入 “c” 可以得到有效字符串 “abc”。解释:在每个 “a” 之后依次插入 “b” 和 “c” 可以得到有效字符串 “abcabcabc”。输入:word = “abc”输入:word = “b”原创 2024-01-11 22:04:05 · 486 阅读 · 0 评论 -
背包问题
背包问题初始化的细节问题01背包状态转化方程空间优化多重背包状态转化方程空间优化初始化的细节问题要求恰好装满背包,那么在初始化时除了f[0]为0f[0]为0f[0]为0其它f[0...V]f[0...V]f[0...V]都是 −∞-\infty−∞如果并没有要求必须把背包装满,而只是希望价格尽量大,初始化时就应该将f[0...V]f[0...V]f[0...V]全部设为001背包状态转化方程f[i][j]=max(f[i−1][j],f[i−1][j−w[i]]+v[i])f[i][j] =原创 2021-01-10 13:46:54 · 73 阅读 · 0 评论 -
CookBook
CookBook Array JavaArray1. TwoSum11. maxArea15. threeSumArray1. TwoSumpackage LeetCode.cookbook.Array;import java.util.HashMap;import java.util.Map;/** * @program: JavaLife * @author: JiaLe Hu * @create: 2020-12-14 19:29 **/public class twoSu原创 2020-12-14 20:15:48 · 189 阅读 · 0 评论 -
LeetCode842 将数组拆分成斐波那契序列
LeetCode842 将数组拆分成斐波那契序列dfs剪枝思路:如果当前index为前导零则直接break如果当前值已经大于前两个值则直接break如果当前值大于Integer.MAX_VALUE直接breakpublic boolean dfs(char[] digit, List<Integer> res, int index) { if (index == digit.length && res.size() >= 3) {原创 2020-12-08 14:40:03 · 72 阅读 · 0 评论