【LeetCode-763】划分字母区间(贪心)

LeetCode763.划分字母区间 题目链接 题目描述 字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的列表。 示例: 输入:S = “ababcbacadefegdehijhklij”输出:[9,7,8] 解释: 划分结果为 “ababcbaca”, “defegde”, “hijhklij”。 每个字母最多出现...

day31 贪心算法 分发饼干 摆动序列 最大子序和

,让后面的数更小,所以从后面的数重新计算连续和;只要连续和是正数,该连续和加上后面的数,就会增大后面的数 局部最优:连续和为负数,立刻抛去连续和,以下一个数为起点计算连续和 全局最优:找到最大连续和 贪心算法 代码 class Solution {public: int maxSubArray(vector<int>& nums) { int result = INT_MIN; int count ...

【LeetCode-435】无重叠区间(贪心)

]输出: 2解释: 你需要移除两个 [1,2] 来使剩下的区间没有重叠。 示例 3: 输入: [ [1,2], [2,3] ]输出: 0解释: 你不需要移除任何区间,因为它们已经是无重叠的了。 解法:贪心 相信刚开始看到这道题目都冥冥之中感觉要排序和我前几天做的很类似,都是需要提前固定好一个变量 我来按照右边界排序,从左向右记录非交叉区间的个数。最后用区间总数减去非交叉区间的个数就是需要移除的区间个数...

【LeetCode-452】用最少数量的箭引爆气球(贪心)

[2,3]]输出:1 提示: 0 <= points.length <= 10^4points[i].length == 2-2^31 <= xstart < xend <= 2^31 - 1 解法:贪心 如何使用最少的弓箭呢? 直觉上来看,貌似只射重叠最多的气球,用的弓箭一定最少,那么有没有当前重叠了三个气球,我射两个,留下一个和后面的一起射这样弓箭用的更少的情况呢? 尝试一下举反例,发现没有这种情...

【LeetCode-135】分发糖果(贪心)

这三个孩子分发 2、1、2 颗糖果。 示例 2: 输入: [1,2,2]输出: 4解释: 你可以分别给这三个孩子分发 1、2、1 颗糖果。第三个孩子只得到 1 颗糖果,这已满足上述两个条件。 解法1:贪心 这道题目一定是要确定一边之后,再确定另一边,例如比较每一个孩子的左边,然后再比较右边,如果两边一起考虑一定会顾此失彼。 先确定右边评分大于左边的情况(也就是从前向后遍历) 此时局部最优:只要右边评分...

【LeetCode-134】加油站(贪心

你都不可能绕环路行驶一周。 解法1:暴力解法 直接两遍for循环,以每一个节点为起点进行遍历,如果能够到达起点则可以开一圈。但是这种方法太暴力,已经会报超出时间限制,所以此处不建议这个方法! 解法2:贪心算法 如果遍历下来,总的油量是大于0的话,则最后是一定能够遍历一圈的。说明 各个站点的加油站 剩油量rest[i]相加一定是大于等于零的。 每个加油站的剩余量rest[i]为gas[i] - cost...

【LeetCode-53】最大子数组和(贪心&动归)

大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6 解法1:贪心算法 如果 -2 1 在一起,计算起点的时候,一定是从 1 开始计算,因为负数只会拉低总和,这就是贪心贪的地方! 局部最优:当前“连续和”为负数的时候立刻放弃,从下一个元素重新计算“连续和”,因为负数...

【LeetCode:2656. K 个元素的最大和 | 贪心+等差数列】

🍔 目录 🚩 题目链接⛲ 题目描述🌟 求解思路&实现代码&运行结果⚡ 等差数列🥦 求解思路🥦 实现代码🥦 运行结果 💬 共勉 🚩 题目链接 2656. K 个元素的最大和 ⛲ 题目描述 给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。你需要执行以下操作 恰好 k 次,最大化你的得分: 从 nums 中选择一个元素 m 。 将选中的元素 m 从数组中删除。 将新元素 m + 1 添加到...

【LeetCode:2736. 最大和查询 | 贪心 + 二分 + 单调栈】

🍔 目录 🚩 题目链接⛲ 题目描述🌟 求解思路&实现代码&运行结果⚡ 贪心 + 二分 + 单调栈🥦 求解思路 & 实现代码 💬 共勉 🚩 题目链接 2760. 最长奇偶子数组 ⛲ 题目描述 给你两个长度为 n 、下标从 0 开始的整数数组 nums1 和 nums2 ,另给你一个下标从 1 开始的二维数组 queries ,其中 queries[i] = [xi, yi] 。 对于第 i 个查询,在...

算法导论笔记5:贪心算法

P216 第15章动态规划 最优子结构 具有它可能意味着适合应用贪心策略 动态规划(Dynamic Programming)算法的核心思想是:将大问题划分为小问题进行解决,从而一步步获取最优解的处理算法。 剪切-粘贴技术证明 每个子问题的解就是它本身的最优解(利用反证法) 保持子问题空间尽可能简单 P217 在第16章介绍贪心算法,它与动态规划有很多相似之处,最大的不同在于贪心算法不是首先寻找子问题...
© 2024 LMLPHP 关于我们 联系我们 友情链接 耗时0.015984(s)
2024-10-24 11:17:39 1729739859