- 博客(83)
- 收藏
- 关注
原创 leetcode2003. 每棵子树内缺失的最小基因值
给你一个下标从 0 开始的整数数组 parents ,其中 parents[i] 是节点 i 的父节点。给你一个下标从 0 开始的整数数组 nums ,其中 nums[i] 是节点 i 的基因值,且基因值 互不相同。输入:parents = [-1,0,1,0,3,3], nums = [5,4,6,2,1,3]输入:parents = [-1,0,0,2], nums = [1,2,3,4]输出:[7,1,1,4,2,1]输出:[5,1,1,1]
2023-10-31 20:25:08
162
原创 Leetcode1723. 完成所有工作的最短时间 dfs剪枝优化
*题目其实是让我们将n个数分为k份,并且尽可能让k分平均,这样[最大工作时间]才是最小的。可以选择枚举工人,给每个工人分配工作,搜素的时候同时维护最大的工作时间,记录答案时维护最大工作时间的最小化。所有工作都应该分配给工人,且每项工作只能分配给一位工人。给你一个整数数组 jobs ,其中 jobs[i] 是完成第 i 项工作要花费的时间。是完成分配给他们的所有工作花费时间的总和。1 号工人:1、2、8(工作时间 = 1 + 2 + 8 = 11)解释:给每位工人分配一项工作,最大工作时间是 3。
2023-10-31 19:08:10
196
原创 Leetcode2919. 使数组变美的最小增量运算数 记忆化搜索
dfs(i, j)表示现在要处理nums[0]到nums[i]这段子数组,并且num[i]右边有j个没有变大的数。比如这个例子,对于当前i:右边只有一个没有变大的数利用这种定义,我们就能从dfs(i, j)转移到i - 1从后往前枚举选:`dfs[i][j] = dfs(i - 1, 0) + max(k - nums[i], 0)`不选:`if (j < 2) dfs[i][j] = dfs(i - 1, j + 1)`,对于i - 1,右边多一个不选的数。
2023-10-30 17:27:35
230
原创 动态规划入门:从记忆化搜索到递推
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,。给定一个代表每个房屋存放金额的非负整数数组,计算你,一夜之内能够偷窃到的最高金额。
2023-10-29 20:52:26
99
原创 力扣339周赛——转化二维数组
思路:行数不超过数字出现的最多次数。实例1就出现最多次数的数字是1,出现三次,所以最多就只能有三行。可以用哈希表存每个数字出现的次数,枚举完每行后,每个数字的次数减1。//这里相当于二维数组int a[n][n];
2023-04-02 23:25:52
77
原创 2020蓝桥杯模拟——长草
很经典的bfs思路,与传统的走迷宫bfs相比,这道题不需要用队列中已经搜到的点去拓展更外层的点,所以搜完四个方向时,不需要将这四个方向的点加入队列。如果为小数点,表示为空地,如果字母为 g,表示种了草。如果为小数点,表示为空地,如果字母为 g,表示长了草。这些草长得很快,每个月,草都会向外长出一些,如果一个小块种了草,则它将向自己的上、下、左、右四小块空地扩展,小明有一块空地,他将这块空地划分为 n 行 m 列的小块,每行和每列的长度都为 1。小明选了其中的一些小块空地,种上了草,其他小块仍然保持是空地。
2023-03-26 16:43:41
142
原创 蓝桥杯2021模拟赛“受伤的皇后”
本题有三个限制:行、列、对角线行的距离至少为3。行比较好办,我们枚举每一行是否应该放皇后,每一行判断该放哪个位置,自然就能够跳过对行的判断。列,我们直接判断是否在同一列即可。我们可以利用初中学过的y=kx+b和y=-kx+b,因为斜率都是1,所以k默认为1,不用管。对于处在对角线的皇后,解出b看是否相等,同时行的距离是否大于3即可判断。check函数每次判断两组坐标,i和a[i], r和c,题目中有注释就不多说了。同时用 a数组来存每一行对应的列,就可以避免开二维数组得以省下空间。输出一个整数,表示答案。
2023-03-25 18:09:22
142
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人