
贪心
俺叫西西弗斯
找份前端开发工作
都柏林理工大学博士拟录取(没钱读)
李莫瑞克大学硕士在读(主持爱尔兰软件研究中心)
重庆2022优秀毕业生
展开
-
[ACwing]896. 最长上升子序列 II
算法标签 贪心 二分题目简叙思路维护一个单调栈,如果是大于栈末尾元素就插入,形成单调栈,否则就找到第一个大于的元素进行替换,通过这种方式计算最长子序列的长度代码#include<iostream>using namespace std;int n;const int N=1e5+10;int stk[N];//模拟单调栈int arr[N];//数据int cnt;int find(int x){//找到第一个栈里数据大于X的 int l = 1, r =原创 2020-08-04 22:51:33 · 237 阅读 · 0 评论 -
[Acwing] 803. 区间合并
算法标签:贪心 区间和并题目简叙思路合并区间可能遇到以下的三种状态:我们维护了一个区间来进行判定我们每次可以维护的长度lens(start,end)如果是状态1:lens不发生改变如果是状态2:lens中的end进行更新扩展else end = max(end,item.second);//状态1 维护并延长区间如果是状态3:保存lens的状态,同时lens更新,lens.count++ if(end<item.first){//状态2 更新到新的区间原创 2020-07-23 18:04:55 · 219 阅读 · 0 评论 -
活动安排问题
算法标签 贪心题目思路代码#include<iostream>#include<algorithm>#include<vector>using namespace std;typedef pair<int,int> PII;vector<PII>PIIArr;int n;const int N=100+10;int AnsArr[N];void slove(){ sort(PIIArr.begin(),P原创 2020-07-20 17:46:18 · 149 阅读 · 0 评论 -
[LeetCode]1437. 是否所有 1 都至少相隔 k 个元素
算法标签:贪心题目简叙思路数组找两个1之间得距离取得该距离得最小值与K比较代码class Solution {public: bool kLengthApart(vector<int>& nums, int k) { int cnt=1e8,checknum=0,precheck=0,c1=1; int ans=1e8; for(int i=0;i<nums.size();i++) {原创 2020-07-19 21:52:19 · 169 阅读 · 0 评论 -
[LeetCode]1431. 拥有最多糖果的孩子
算法标签:贪心题目简叙思路BOOL数组测量,贪心代码class Solution {public: vector<bool> kidsWithCandies(vector<int>& candies, int extraCandies) { int maxn=0; for(int i=0;i<candies.size();i++)maxn=max(maxn,candies[i]); vector<bool&g原创 2020-07-19 21:49:01 · 184 阅读 · 0 评论 -
[LeetCode]1029. 两地调度
题目来源 LeetCode算法标签 贪心题目描述公司计划面试 2N 人。第 i 人飞往 A 市的费用为 costs[i][0],飞往 B 市的费用为 costs[i][1]。返回将每个人都飞到某座城市的最低费用,要求每个城市都有 N 人抵达。示例:输入:[[10,20],[30,200],[400,50],[30,20]]输出:110解释:第一个人去 A 市,费用为 10。第二个人去 A 市,费用为 30。第三个人去 B 市,费用为 50。第四个人去 B 市,费用为 20。最低总费原创 2020-05-29 19:55:03 · 271 阅读 · 0 评论 -
[LeetCode]738. 单调递增的数字
题目来源 LeetCode算法标签 贪心题目描述给定一个非负整数 N,找出小于或等于 N 的最大的整数,同时这个整数需要满足其各个位数上的数字是单调递增。(当且仅当每个相邻位数上的数字 x 和 y 满足 x <= y 时,我们称这个整数是单调递增的。)示例 1:输入: N = 10输出: 9示例 2:输入: N = 1234输出: 1234示例 3:输入: N = 332输出: 299说明: N 是在 [0, 10^9] 范围内的一个整数。通过次数4,547提交次数10原创 2020-05-29 19:03:24 · 242 阅读 · 0 评论 -
[算法课][贪心]W12自学2密码发生器
题目来源 算法课算法标签 贪心,完全背包问题题目描述在对银行账户等重要权限设置密码的时候,我们常常遇到这样的烦恼:如果为了好记用生日吧,容易被破解,不安全;如果设置不好记的密码,又担心自己也会忘记;如果写在纸上,担心纸张被别人发现或弄丢了…这个程序的任务就是把一串拼音字母转换为6位数字(密码)。我们可以使用任何好记的拼音串(比如名字,王喜明,就写:wangximing)作为输入,程序输出6位数字。变换的过程如下:第一步. 把字符串6个一组折叠起来,比如 wangximing则变为:原创 2020-05-23 22:20:11 · 246 阅读 · 0 评论 -
[算法课][贪心][背包]W12例2背包问题
题目来源 算法课算法标签 贪心,完全背包问题题目描述例2背包问题:假如我们有一个可以装100kg物品的背包,我们有5种豆子,每种豆子的总量和总价值各不相同。为了让背包中所装的物品的总价值最大,我们如何选择装哪些豆子,每种装多少?【可以选择某种物品装部分】答案颜老板代码#include<stdio.h>#include<stdlib.h>#include<windows.h>#include<string.h>struct wp{原创 2020-05-23 19:15:38 · 310 阅读 · 0 评论 -
[算法课][贪心]W12例1字典序最小问题
文章目录题目来源 算法课算法标签 字符串,贪心题目描述PS:输入 ACDBCB输出 ABCBCD颜老板代码吐槽思路AC代码题目来源 算法课算法标签 字符串,贪心题目描述问题描述:给定长度为N的字符串S,要构造一个长度为N字符串T。T开始是一个空串,反复执行下列任意操作:1)从S的头部删除一个字符,加到T的尾部;2)从S的尾部删除一个字符,加到T的尾部;目标是要构造字典序尽可能小的字符串T。PS:字典序是指从前到后比较两个字符串的大小的方法。首先比较第1个字符,如果不同则第1个字原创 2020-05-23 15:40:53 · 293 阅读 · 0 评论 -
[计蒜客][贪心]蘑菇森林
题目来源 计蒜客程序设计竞赛基础课(蓝桥杯省赛)算法标签 贪心题目描述思路如果我的命中率比路人怪物甲的闪避值高,我就能A中它。我可以检查出多少个怪物我可以A中,并把这些怪物的血量存储起来排序血最少的最优先A,这样就可以统计极限操作可以A多少AC代码#include<iostream>#include<algorithm>using namespace std;const int N=5e3+100;int a[N];int main(){原创 2020-05-21 17:17:22 · 505 阅读 · 0 评论 -
[计蒜客][贪心]节约用电
题目来源 计蒜客程序设计竞赛基础课(蓝桥杯省赛)算法标签 贪心题目描述思路事实上就是一维的线上从左到右标记所有M距离的点,相当于用距离为依据划分成N个等分,中间的数量就是答案的数量样例一:3 6 10 1 排序:1 3 6 10减去头尾 3 6 判定 6-3<5 关掉ans =1; AC代码#include<iostream>#include<algorithm>using namespace std;const int N=1e5原创 2020-05-15 16:38:56 · 502 阅读 · 0 评论 -
[计蒜客][贪心]奶酪工厂
题目来源 计蒜客程序设计竞赛基础课(蓝桥杯省赛)算法标签 贪心题目描述思路中点实际上是我们在处理奶酪的时候,什么时候决定他用上周生产或者本周生产。事实上题目存在误导,会以为顺序方向上存在a1=a1+a2事实上我们考虑的时候只需要考虑a2用a1的数据做还是a2的数据做即可即本周的生产成本还是上一周的生产成本做那么问题就简化为了每一周的上周成本与本周成本比较AC代码#include<iostream>#include<cstring>using namespa原创 2020-05-15 16:07:57 · 421 阅读 · 0 评论 -
[算法课]从超简单贪心而来的几个奇怪又好用的写法
题目来源:网络算法标签:贪心题目简介兑换N元的零钱,使得给出的钞票数量最小思路毫无疑问递归访问最大,但这一点都不重要,重要的是我觉得几个写法非常有趣#include<iostream>using namespace std;int m[]={100,50,20,10,5,2,1};const int num = sizeof m /sizeof m[0];//静态得到数组M的大小int z[num];//直接申请M大小的空间int main(){ int n原创 2020-05-14 18:58:58 · 188 阅读 · 0 评论 -
[LeetCode]5385. 改变一个整数能得到的最大差值
算法标签:贪心,搜索难度:中等题目简介给你一个整数 num 。你可以对它进行如下步骤恰好 两次 :选择一个数字 x (0 <= x <= 9).选择另一个数字 y (0 <= y <= 9) 。数字 y 可以等于 x 。将 num 中所有出现 x 的数位都用 y 替换。得到的新的整数 不能 有前导 0 ,得到的新整数也 不能 是 0 。令两次对 num 的操...原创 2020-05-03 00:43:03 · 280 阅读 · 0 评论