- 博客(16)
- 收藏
- 关注
原创 动态规划 dp算法
此处以求最小值为例✅ 状态定义:dp[i][j] = 将区间 [i,j] 合并成一段的最小代价✅ 转移方程:对于每个断点k,尝试将区间[i,j]分割成[i,k],[k+1,j]两端进行合并,则dp[i][j] = 区间[i,j]经过某种构造操作后的最大值(最小值)✅ 状态定义:dp[i][j] 表示将区间 [i,j] 转化为合法结构(如合法括号、回文)的最小代价(如删除次数)✅ 转移方程:情况1 s[i]==s[j] dp[i][j]=dp[i+1][j-1]情况2 s[i]!
2025-05-23 23:35:55
971
原创 贪心:防晒
本文介绍了一个关于奶牛日光浴和防晒霜分配的问题。给定C头奶牛,每头奶牛需要特定强度范围内的阳光,且有L种防晒霜,每种防晒霜提供固定的阳光强度并有一定数量。目标是最大化满足奶牛日光浴需求的数量。 解决思路是将奶牛按所需阳光强度的右端点升序排序,然后依次为每头奶牛分配满足其需求的最小防晒霜。通过遍历每头奶牛的需求范围,找到可用的防晒霜并进行分配,最终统计满足需求的奶牛数量。 代码实现中,使用数组存储奶牛的需求和防晒霜的数量,通过排序和遍历完成分配过程,最终输出满足需求的奶牛数量。
2025-05-22 22:26:16
713
原创 dfs:小猫爬山
方法:将体积按降序排序,先放入大体积的物体,下一个物体如果能放进已经放入物体的盒子则放入,否则重新拿一个新盒子,可以使用dfs搜索回溯,找到最小的盒子数。每租用一辆缆车,翰翰和达达就要付 1 美元,所以他们想知道,最少需要付多少美元才能把这 N 只小猫都运送下山?经历了千辛万苦,小猫们终于爬上了山顶,但是疲倦的它们再也不想徒步走下山了(呜咕>_<)。N+1 行:每行一个整数,其中第 i+1 行的整数表示第 i 只小猫的重量。:给定盒子的容积、n个物体以及对应的体积,求最少需要多少盒子装入全部物体。
2025-05-22 17:12:57
801
原创 二分法总是学不透!
1.首先确定红蓝边界,要求的是总的最高的攻击力,我们可以先求出单次升级能够达到的最小攻击增值t,之后再遍历求和求出总值,即我们可以设蓝色区域为增加攻击不大于t,红色为小于t,只需要判断当达到该攻击增值之时已经升级的次数是否等于M即可。这个炉子有一个称作转换率的属性 V ,V 是一个正整数,这意味着消耗 V 个普通金属 O 恰好可以冶炼出一个特殊金属 X ,当普通金属 O 的数目不足 V 时,无法继续冶炼。接下来 N 行,每行输入一个整数,第 i+1 行输入的整数代表第 i 片区域内包含的牛的数目。
2025-05-22 16:37:35
982
原创 拓扑排序: 可达性统计
我们要统计从当前点可以到达点的个数,即我们可以统计拓扑排序序列中在该点之前(包括该点)的点的数目。第一行两个整数 N,M,接下来 M 行每行两个整数 x,y,表示从 x 到 y 的一条有向边。给定一张 N 个点 M 条边的有向无环图,分别统计从每个点出发能够到达的点的数量。------ 将reach[u]的第u位设置为1,表示从u可以到达该点。采用二进制的set,bitset a(N)必须指定大小N。----- 利用位运算将点v计入点u的可达点中。输出共 N 行,表示每个点能够到达的点的数量。
2025-05-22 16:20:19
415
原创 蓝桥杯备考 蓝桥云课之成绩分析(简单)
小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。请计算这次考试的最高分、最低分和平均分。
2024-10-27 21:21:08
452
原创 蓝桥云课之最少砝码
你有一架天平。现在你要设计一套砝码,使得利用这些砝码可以称出任意小于等于N的正整数重量。那么这套砝码最少需要包含多少个砝码?注意砝码可以放在天平两边。
2024-10-20 22:33:32
503
原创 Leetcode 34 在排序数组中查找元素的第一个和最后一个位置
给你一个按照非递减顺序排列的整数数组nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。
2024-10-17 23:30:51
324
原创 Leetcode 之二分查找 x的平方根
给你一个非负整数 x ,计算并返回 x 的 算术平方根。由于返回类型是整数,结果只保留整数部分 ,小数部分将被 舍去。注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5。
2024-10-17 23:12:13
472
原创 Leetcode 3194. 最小元素和最大元素的最小平均值
你有一个初始为空的浮点数数组 averages。另给你一个包含 n 个整数的数组 nums,其中 n 为偶数。你需要重复以下步骤 n / 2 次:从 nums 中移除 最小 的元素 minElement 和 最大 的元素 maxElement。将 (minElement + maxElement) / 2 加入到 averages 中。返回 averages 中的 最小 元素。
2024-10-16 22:52:31
347
原创 Leetcode 贪心算法之Largest Number
给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。
2024-10-13 22:21:25
403
原创 Leetcode 贪心算法之Gas Station
我在这里首先是想到了利用总油量count必须要大于0,然后进行了遍历,但发现很麻烦(其实是因为懒得找代码出错在哪里了),于是我开辟了sup数组来存储剩余的油量,然后对这个数组进行分析。将sup存入元素,同时求整个过程的剩余油量,如果count小于0,则直接返回-1,若count满足大于0且只有一个元素,则一定可以,返回0。
2024-10-12 23:30:39
1993
原创 Leetcode 贪心算法之Jump Game
此题与Jump Game II不同的地方在于:Jump Game II是需要考虑最小跳跃数,此时我考虑了每次都够跳达的最远处;此时我们定义一个place,随着 i++ 来接收在到 i 之前我们可以到达的最远位置(place与i+num[i]的最大值),如果我的 i 此时大于place也就是说我并不能够走到 i 这一位置,具体一点来说就是,num[i]此时取了一个小于等于0的值。解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。)相对比,可查询我前一篇博客。
2024-10-12 22:09:31
551
原创 Leetcode 贪心算法之Best Time to Buy and Sell Stock II
给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。返回 你能获得的 最大 利润。
2024-10-12 21:27:23
335
原创 Leetcode 贪心算法之Jump Game II
给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i + j] 处:i + j < n返回到达 nums[n - 1] 的最小跳跃次数。生成的测试用例可以到达 nums[n - 1]。
2024-10-11 22:41:21
1132
1
原创 Leetcode 贪心算法之 Container With Most Water
给定一个长度为 n 的整数数组 height。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i])。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。说明:你不能倾斜容器。
2024-10-11 21:58:26
878
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人