贪心法
文章平均质量分 51
tzyshiwolaogongya
这个作者很懒,什么都没留下…
展开
-
leetcode621——Task Scheduler
题目大意:给出字符数组表示任务列表,26个大写字母代表26种任务。给出整数n,执行相同任务之间必须有长度为n的冷冻时间。CPU在每个单位时间可以选择执行任务或者待命,求完成这些任务所需要的最短时间。分析:方法一:贪心法。贪心策略:尽早安排出现次数较多的任务。因为如果把他们留在后面,就会造成大量的冷冻时间。做法:每一轮选择剩余出现次数最多的不超过n+1个任务来执行,这样保证了冷冻时间。在每一轮中...原创 2020-04-05 09:58:32 · 96 阅读 · 0 评论 -
leetcode406——Queue Reconstruction By Height
题目大意:给出二维数组代表打乱顺序的一队人,每个人由(身高h,排在他前面身高大于等于他的人的个数k)表示,重排队列。分析:贪心算法。由于矮子对高个子来说是“看不见”的(矮子插入在高个子前面不会影响高个子的k值),所以采取每次先放高个子的贪心策略,如果身高相同,按k值递增排序。这样的贪心策略能确保每一步插入都使得当前队列是符合要求的。做法:第一步:对people排序,先按h降序,再按k升序。...原创 2020-03-24 09:59:13 · 75 阅读 · 0 评论 -
leetcode134——Gas Station
题目大意:加油站在环路上,从第i个加油站出发可获得gas[i],去往第i+1个加油站需消耗cost[i],判断从哪个加油站出发可以回到原点。分析:贪心算法。代码:class Solution {public: int canCompleteCircuit(vector<int>& gas, vector<int>& cost) { ...原创 2020-02-23 13:47:15 · 86 阅读 · 0 评论 -
leetcode122——Best Time to Buy and Sell Stock II
题目大意:给出每天的股票价格,可以进行多次的买进卖出,问经过这些天能够赚取的最大利润是多少分析:贪心法。贪心策略——每次有利可赚就要及时赚。我们算出每两天之间的价格差值,只要大于0就说明是有利润的,进行这个交易即可,否则不进行交易。(注:如果是一直递增,这样两两差值相加和首尾差值是相同的)代码:转载自https://leetcode.com/problems/best-time-to-bu...原创 2018-07-28 13:20:40 · 110 阅读 · 0 评论 -
leetcode630——Course Schedule III
题目大意:给出n个课程的信息,每个课程信息是一个二维数组,表示课程的耗时和deadline,问最多能完成这些课程中的多少分析:贪心法。贪心思想——按课程的deadline从小到大排序,因为越需要早点结束就意味着越需要尽快安排它被上完,当我们加入一个课程却发现上完它的时间超过了它的deadline时,就需要将已经安排的课程中最耗时的一个课程去掉,这一点需要用一个优先及队列来辅助存储。代码:转...原创 2018-07-24 17:02:00 · 344 阅读 · 0 评论 -
poj2287——Tian Ji -- The Horse Racing
题目大意:田忌和齐王赛马,各有N匹马,速度不同,赢了得200分,输了扣200分,问田忌最后赛马能得到的最高分是多少输入:N 田忌第i匹马的速度(共N个,空格间隔) 齐王第i匹马的速度(共N个,空格间隔)输出:最高得分分析:贪心法。主要原则:尽可能的消耗齐王的快马,消耗自己的慢马。 三条原则:1.田忌最快的马>齐王最...原创 2018-07-09 22:22:41 · 334 阅读 · 0 评论 -
poj1017——Packets
题目大意:将高度相同的小盒子装入6*6的大盒子中,正方形底面的小盒子有六种型号,底面边长分别为1~6,问最多用几个大盒子输入:六中型号的小盒子的个数 结束:六个0输出:最小大盒子个数分析:贪心法。代码:转载自https://blog.csdn.net/whuxiaoqiang/article/details/7705380#include <stdlib.h>#inc...原创 2018-07-09 19:48:34 · 148 阅读 · 0 评论 -
poj2393——Yogurt factory
题目大意:酸奶厂要根据N周的顾客需求量来生产酸奶并出售,每周的单位生产成本和需求量不同,分别为Ci和Yi,每周生产的多余酸奶可以储存在仓库,每单位酸奶收取储藏费用S,问酸奶厂满足顾客需求的最低成本输入:N S (1 <= N <= 10,000) (1 <= S <= 100) Ci Yi(共N行)(1 <= Ci <= 5,000) (0...原创 2018-07-09 17:22:27 · 105 阅读 · 0 评论 -
poj1700——Crossing River
题目大意:只有一艘船,船上最多载两个人,问让所有人过河的最短时长代码:转载自https://blog.csdn.net/vmurder/article/details/40826151#include <cstdio>#include <cstring>#include <algorithm>#define N 1005using namespace s...原创 2018-07-09 10:51:20 · 162 阅读 · 0 评论 -
leetcode45——Jump Game II
题目大意:给出一个非负数数组,从index0开始跳,数组中的值代表能从该位置跳的最多步数,问到达数组结尾所需的最小跳数分析:贪心法。与leetcode55类似。维持一个当前跳了ret步数后的最远到达距离curRch,再维持一个从0到i中起跳所能到达的最远距离curMax,当curRch<i时就代表当前步数已经不够覆盖第i个元素了,所以ret+1。代码:JAVA转载自https://www.c...原创 2018-04-26 16:31:32 · 163 阅读 · 0 评论 -
leetcode55——Jump Game
题目大意:给出一个数组,数组中的元素值代表了从该点开始最多能跳多少步,问能不能从index0开始跳到数组的最后一位分析:贪心法。刚开始想用dfs但是栈溢出了,参考了网上这种很简单但是思想深刻的贪心法。代码:class Solution {public: bool canJump(vector<int>& nums) { int rightMost = 0; //维持一个最远...原创 2018-04-25 16:02:23 · 84 阅读 · 0 评论