贪心算法_Leetcode刷题_7/100
贪心算法
采用贪心策略,保证每次操作是局部最优的,从而使随后结果是全局最优的。
455.分配饼干
- 贪心策略:尽量把最小的饼干分配给胃口最小的孩子。
- 我的代码:

- 算法描述:
- 将孩子的胃口值g和拥有的饼干s进行升序排列;
- 使用双指针对胃口和饼干进行遍历,在胃口和饼干都被遍历完之前(分配完成),为每个胃口匹配能完成它的最小饼干,满足胃口即计数+1,直到退出循环。
135.分糖果
- 贪心策略:在每次遍历中,只考虑并更新一侧的大小关系。
- 官方代码:

- 我的代码:

- 算法描述【我的代码】:
- 将所有孩子的的糖果数初始化为1;
- 先从左往右遍历一遍,如果右边孩子的评分比左边孩子高,则右边孩子的糖果数更新为左边孩子的糖果数+1;
- 再从右往左遍历,如果左边的孩子评分比右边高且左边孩子的糖果数小于等于右边孩子的糖果数,则左边孩子的糖果数更新为右边孩子的糖果数+1.
435.区间问题
- 贪心策略:优先保留结尾小且不相交的区间。
- 官方代码:

- 算法描述:
- 先确定首个区间,应该满足右端点最小;将所有区间按照右端点从小到大进行排序;
- 下一个区间应该满足于首个区间不重合且右端点最小的区间;
- 依次排列,形成最终最优的不重叠区间结果。
Arrays.sort用法
452.用最少数量的箭引爆气球
我的代码:

算法思路:这个题与435.区间问题本质上是同一个问题,将所有气球的区间排列成为最少的不重复区间,包括端点不重复,这样用的箭的数量其实是满足了所有气球都能被引爆的最小值。
605.种花问题
- 我的代码

- 算法描述:判断一个位置是否能够种花,只需要判断这个位置的左右两边是否有位置;对于最开始和最后的位置,只需要判断位置的右边或者左边是否有空位;为了将这些情况归一化处理,在最开始和最后的位置上各加1个0,再按照普遍情况进行遍历即可。
763.划分字母区间
- 官方代码:

对字符串还不太了解,暂时放弃; - 算法描述:
122.买卖股票的最佳时间
- 我的代码:

- 算法描述:把一段时间的购入卖出理解为每天都在购入卖出,如果这一天可以获利,就执行购入并卖出;如果这一天不能获利就不购入,自然也无需卖出;实际不是这样操作的,但是可以用这种思想解决问题。
贪心算法_Leetcode刷题_7/100的更多相关文章
- 算法笔记刷题1(codeup 1934)
准备6月份的拼题甲级中(本来现在这两天就考试了,但是因为疫情的原因延期了) 刚刚开始按算法笔记刷题,今天是探索codeup的第一天. 一开始并没有把多点测试当回事,直到一错再错,心态爆炸... 附上我 ...
- 1、学习算法和刷题的框架思维——Go版
前情提示:Go语言学习者.本文参考https://labuladong.gitee.io/algo,代码自己参考抒写,若有不妥之处,感谢指正 关于golang算法文章,为了便于下载和整理,都已开源放在 ...
- 算法笔记刷题3(codeup 5901)
今天刷题的速度依旧很慢(小乌龟挥爪.jpg) 我觉得codeup5901中回文串的处理很妙,如果是我自己写的话可能会把数组直接倒过来和原来对比.按照对称规律进行比对的话,工作量可以减少一半. #inc ...
- poj 2586 Y2K Accounting Bug(贪心算法,水题一枚)
#include <iostream> using namespace std; /*248K 32MS*/ int main() { int s,d; while(cin>> ...
- 有效的括号序列——算法面试刷题4(for google),考察stack
给定一个字符串所表示的括号序列,包含以下字符: '(', ')', '{', '}', '[' and ']', 判定是否是有效的括号序列. 括号必须依照 "()" 顺序表示, & ...
- 相似的RGB颜色——算法面试刷题3(for google),考察二分
在本题中,每个大写字母代表从“0”到“f”的一些十六进制数字. 红绿蓝三元色#AABBCC可以简写为#ABC. 例如,#15c是颜色#1155cc的简写. 现在,假设两种颜色#ABCDEF和#UVWX ...
- 回文的范围——算法面试刷题2(for google),考察前缀和
如果一个正整数的十进制表示(没有前导零)是一个回文字符串(一个前后读取相同的字符串),那么它就是回文.例如,数字5, 77, 363, 4884, 11111, 12121和349943都是回文. 如 ...
- 有效单词词广场——算法面试刷题5(for google),考察数学
给定一个单词序列,检查它是否构成一个有效单词广场.一个有效的单词广场应满足以下条件:对于满足0≤k<max(numRows numColumns)的k,第k行和第k列对应的字符串应该相同,. 给 ...
- rp算法 随机化 刷题记录
刷随机化是真的会上瘾quq 洛谷P3973 [TJOI2015]线性代数 看oiwiki上说可以随机化...于是... 就随机在a[i]上选一位取反,然后更新答案,最后输出答案. ...无话可说 代码 ...
- 算法笔记刷题5(PAT A1025)
第一次上手PAT的甲级题目,瑟瑟发抖(英语不好对着题目愣了半天) 这一题的要点是使用sort函数. 使用sort函数必须使用 #include <algorithm> using name ...
随机推荐
- JSON操作方法
一 JSON.stringify JSON.stringify() 方法是将一个JavaScript值(对象或者数组)转换为一个 JSON字符串,如果指定了replacer是一个函数,则可以替换值,或 ...
- 遇到端口占用无法启动IIS Express服务器
报错图片: 上图所述由于端口被占用无法完成IIS Express的输出 这时候要考虑到自己在Windows的IIS 是不是配置了该端口? 很明显,就是配置了一个8091的端口且还在启动中,这时候要先将 ...
- OV5640数据的解码
为了配合开发板的使用,笔者搞了一个OV5640的摄像头模组,OV5640具体的相关手册及资料网上已经很多,感兴趣的都可以自行去查找,基本大同小异.这里也不把OV5640初始化的代码贴出来,因为就是简单 ...
- TDengine上手笔记
TDengine简介 TDengine 是一款开源.高性能.云原生的时序数据库,且针对物联网.车联网.工业互联网.金融.IT 运维等场景进行了优化.您可以像使用关系型数据库 MySQL 一样来使用它. ...
- lua-1-c# 执行lua文件-调用lua文件中的方法
using UnityEngine;using System.Collections;using LuaInterface;//引入lua接口public class MyHellowWorld : ...
- leedcode题目 :罗马数字转整数 Java
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 例如, 罗马数字 2 写做 II ,即为两个并列的 1.12 写做 XII ,即为 X + II . 27 写做 XXVII, 即 ...
- CSS中的选择( ::selection和user-select)
CSS中的选择( ::selection和user-select) 在网络上,我们出于不同原因选择内容,也许我们想复制文本并在某处引用它.对于移动端来说,选择内容比较难,我不喜欢在移动端选择内容. ...
- webapp 增加 springmvc框架 支持
1.通过maven创建一个webapp项目,并在IDEA 中增加smart tomcat的插件. 2.然后在pom文件中添加springmvc的依赖 <!-- ServletAPI --> ...
- Flutter 3.+更新记录
Flutter3.3稳定版出来了,于是决定把之前Flutter工程的代码更新下其中里面有些涉及到组件的弃用 在此记录 ElevatedButton 代替了 RaisedButton 为带阴影的悬浮按钮 ...
- 【STM32】串口收发驱动Drv_Uart|学习笔记
一.什么事串口? 大家常说串口,其实串口有很多种UART,SPI,IIC都是串口,一般大家口中的串口就是UART(Universal Asynchronous Receiver/Transmitter ...