leetcode的一些贪心题目
11-盛最多水的容器
思路:定义2个指针分别指向数组的两端,找出两边缘最小的那个,然后乘以两边缘的距离,然后向中间搜索,移动一次算出结果比较取最大的。
class Solution {
public:
int maxArea(vector<int>& height) {
int res=0,i=0,j=height.size()-1;
while(i<j){
int h=min(height[j],height[i]);
res = max(res,h*(j-i));
while(i<j&&h==height[i]) i++;
while(i<j&&h==height[j]) j--;
}
return res;
}
};
455-分发饼干
思路:可以先对两个数组进行排序,然后从小到大来一一对应,res+1,第二个数组发现不能满足第一个数组的时候逐步+1,然后用该数组后面的数字来对比。
class Solution {
public:
int findContentChildren(vector<int>& g, vector<int>& s) {
sort(g.begin(),g.end(),greater<int>());
sort(s.begin(),s.end(),greater<int>()); int gi=0,si=0,res=0;
while(gi<g.size()&&si<s.size()){ if(s[si]>=g[gi]){
res++;
gi++;
si++;
}
else
gi++;
} return res;
}
};
392-判断子序列
思路:目前想到的就是两个字符串对比,从前往后遍历一遍,遇到相同的就自增1,逐步遍历一遍后看i是否等于s的长度,且字符都在t中出现过。
class Solution {
public:
bool isSubsequence(string s, string t) {
int i=0;
for(int j=0;j<t.size()&&i<s.size();j++){
if(s[i]==t[j]) i++;
}
return i==s.size();
}
};
435-无重叠区
思路:先更据每个区间的start进行升序排序,然后更据前一个区间的end是否大于后一个区间的start来进行判断,是则res+1,然后将last指向end值较小的那个区间,没有则指向当前,然后继续遍历。
class Solution {
public:
int eraseOverlapIntervals(vector<vector<int>>& intervals) {
int res = 0, n = intervals.size(), last = 0;
sort(intervals.begin(), intervals.end());
for (int i = 1; i < n; ++i) {
if (intervals[i][0] < intervals[last][1]) {
++res;
if (intervals[i][1] < intervals[last][1])
last = i;
} else {
last = i;
}
}
return res;
}
};
402
55
12
13
leetcode的一些贪心题目的更多相关文章
- LeetCode解题记录(贪心算法)(二)
1. 前言 由于后面还有很多题型要写,贪心算法目前可能就到此为止了,上一篇博客的地址为 LeetCode解题记录(贪心算法)(一) 下面正式开始我们的刷题之旅 2. 贪心 763. 划分字母区间(中等 ...
- LeetCode All in One 题目讲解汇总(转...)
终于将LeetCode的免费题刷完了,真是漫长的第一遍啊,估计很多题都忘的差不多了,这次开个题目汇总贴,并附上每道题目的解题连接,方便之后查阅吧~ 如果各位看官们,大神们发现了任何错误,或是代码无法通 ...
- LeetCode All in One 题目讲解汇总(持续更新中...)
终于将LeetCode的免费题刷完了,真是漫长的第一遍啊,估计很多题都忘的差不多了,这次开个题目汇总贴,并附上每道题目的解题连接,方便之后查阅吧~ 477 Total Hamming Distance ...
- [LeetCode] BFS解决的题目
一.130 Surrounded Regions(https://leetcode.com/problems/surrounded-regions/description/) 题目: 解法: 这道题 ...
- [LeetCode] 链表反转相关题目
暂时接触到LeetCode上与链表反转相关的题目一共有3道,在这篇博文里面总结一下.首先要讲一下我一开始思考的误区:链表的反转,不是改变节点的位置,而是改变每一个节点next指针的指向. 下面直接看看 ...
- [SinGuLaRiTy] 贪心题目复习
[SinGuLaRiTy-1024] Copyright (c) SinGuLaRiTy 2017. All Rights Reserved. [POJ 2709] 颜料 (Painter) 题目描述 ...
- [LeetCode] Gas Station 贪心
There are N gas stations along a circular route, where the amount of gas at station i is gas[i]. You ...
- LeetCode 89,因为题目晦涩而被点了1500+反对的搜索问题
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode专题第55篇文章,我们一起来看看LeetCode中的第89题 Gray Code(格雷码). 这题的官方难度是Medi ...
- C#LeetCode刷题-贪心算法
贪心算法篇 # 题名 刷题 通过率 难度 44 通配符匹配 17.8% 困难 45 跳跃游戏 II 25.5% 困难 55 跳跃游戏 30.6% 中等 122 买卖股票的最佳时机 II C ...
随机推荐
- kvm动态修改内存和cpu
https://www.cnblogs.com/nmap/p/6369180.html
- (转)VirtualBox下安装CentOS7系统
转:https://www.cnblogs.com/hihtml5/p/8217062.html 本文假定你已经知道如何安装VirtualBox虚拟机软件,并且已经安装好了. 首先我们需要准备好cen ...
- Linux基本常用命令|ubuntu获取root权限
我用的是ubuntu12.4系统,因为默认是没有获取root的权限的 下边讲解怎么获取root权限 在终端中输入: sudo passwd root Enter new UNIX password: ...
- tomcat正常启动输入localhost:8080显示404错误
找了半天才解决. 看这个贴子: https://www.cnblogs.com/lovelanglangyou/p/7410937.html 简而言之: 需要修改eclipse中的server配置,e ...
- 软件-Axure:Axure RP
ylbtech-软件-Axure:Axure RP Axure RP是一款专业的快速原型设计工具.Axure(发音:Ack-sure),代表美国Axure公司:RP则是Rapid Prototypin ...
- for语句基础求和练习
结构 for(初始化表达式;条件表达式;循环后的操作表达式) { 循环体; } 1.求出1-10之间数据之和: class Hello2 { public static void main(Strin ...
- C++继承中的构造和析构
1,构造:对象在创建的后所要做的一系列初始化的工作: 析构:对象在摧毁之前所要做的一系列清理工作: 2,思考: 1,子类中如何初始化父类成员? 1,对于继承而言,子类可以获得父类的代码,可以获得父类中 ...
- 设置cookie,获取cookie
封装cookie获取方法一 function getCookie(key) { var key = encodeURIComponent(key); var result; var pairs = d ...
- Excel_PowerQuery——秒杀Vlookup的表合并
终于,Power Query的第二弹来了,距离上一次PQ更博,已经将近半年. Excel_PoweQuery——条件计数.条件求和 使用PQ进行表格数据的连接合并是一件畅快的事情. 下面的数据是我随机 ...
- 十万级百万级数据量的Excel文件导入并写入数据库
一.需求分析 最近接到一个需求,导入十万级,甚至可能百万数据量的记录了车辆黑名单的Excel文件,借此机会分析下编码过程; 首先将这个需求拆解,发现有三个比较复杂的问题: 问题一:Excel文件导入后 ...