贪心算法

以下是为您整理出来关于【贪心算法】合集内容,如果觉得还不错,请帮忙转发推荐。

【贪心算法】技术教程文章

【贪心算法】分发饼干【代码】【图】

分发饼干假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。 示例 1: 输入: g = [1,2,3], s = [1,1] 输出: 1 解释: 你有三个...

删数问题(贪心算法)【代码】

题目描述 键盘输入一个高精度的正整数 NN(不超过 250250 位),去掉其中任意 kk 个数字后剩下的数字按原左右次序将组成一个新的非负整数。编程对给定的 NN 和 kk,寻找一种方案使得剩下的数字组成的新数最小。 输入格式 n(高精度的正整数 )。 k(需要删除的数字个数 )。 输出格式 最后剩下的最小数。 输入样例 175438 4输出样例 13#include<bits/stdc++.h> using namespace std;int main() {string a; int n,t,cnt=0;cin>>a>>n...

贪心算法:月饼问题【代码】【图】

月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。 注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有 3 种月饼,其库存量分别为 18、15、10 万吨,总售价分别为 75、72、45 亿元。如果市场的最大需求量只有 20 万吨,那么我们最大收益策略应该是卖出全部 15 万吨第 2 种月饼、以及 5 ...

leetcode------贪心算法2【代码】

一、(55)跳跃游戏 **题目:**给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。 示例 1: 输入: [2,3,1,1,4] 输出: true 解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/jump-game 思路: 1、如果处于i位置的时候,最远可以跳到...

极客时间算法课笔记整理9——理论讲解+面试题实战:贪心算法【代码】【图】

贪心算法面试题 122. Best Time to Buy and Sell Stock II我的方法:flag记录该买还是该卖,判断不同拐点的状态。模拟了真实的操作,但不是本题条件下的最简单的想法 class Solution {public int maxProfit(int[] prices) {int day = prices.length;boolean flag=true;if(day==1 || day==0){return 0;}int buy=prices[0], sell=0, profit=0;for (int i = 1; i<day;i++){if(flag && prices[i]<prices[i-1]){buy=prices[i];}else if(...

【LeetCode】翻转矩阵之后的得分(贪心算法)【代码】【图】

题目 有一个二维矩阵 A 其中每个元素的值为 0 或 1 。 移动是指选择任一行或列,并转换该行或列中的每一个值:将所有 0 都更改为 1,将所有 1 都更改为 0。 在做出任意次数的移动后,将该矩阵的每一行都按照二进制数来解释,矩阵的得分就是这些数字的总和。 返回尽可能高的分数。题解 这个题是使用贪心算法的思想做解的 由于题目最后要的结果是二进制转换为十进制之后的结果,所以我们为了让结果最大化 在行的开头必须为1,之后多多...

贪心算法解汽车加油问题【代码】

问题描述: 一辆汽车加满油后可行驶n公里。旅途中有若干个加油站。设计一个有效算法,指出应 在哪些加油站停靠加油,使沿途加油次数最少。对于给定的n(n <= 5000)和k(k <= 1000)个加油站位置,编程计算最少加油次数。并证明算法能产生一个最优解。 在哪些加油站停靠加油,使沿途加油次数最少。对于给定的n(n <= 5000)和k(k <= 1000)个加油站位置,编程计算最少加油次数。并证明算法能产生一个最优解。 要求: 输入:第一行有2个正整...

YbtOJ 贪心算法课堂过关 例4 国王游戏【贪心】【图】

思路 这道题其实主要的难点是如何排序。 排序之后贪心就非常简单了。 考虑贪心邻项交换 设 si=∏j=0iajs_i=\prod\limits_{j=0}^{i}a_jsi?=j=0∏i?aj?。 首先考虑交换前,第 iii 个上的值是 si?1bi\frac {s_{i-1}}{b_i}bi?si?1??,第 i+1i+1i+1个 是 si?1aibi+1\frac {s_{i-1}\times a_i}{b_{i+1}}bi+1?si?1?ai?? ans1=max?(si?1bi,si?1aibi+1)ans_1=\max(\frac {s_{i-1}}{b_i},\frac {s_{i-1}\times a_i}{b_{i+1}})ans1?=max(bi?si...

「leetcode」本周小结!(贪心算法系列四)【代码】【图】

本文 https://github.com/youngyangyang04/leetcode-master 已经收录,里面还有leetcode刷题攻略、各个类型经典题目刷题顺序、思维导图,可以fork到自己仓库,有空看一看一定会有所收获,如果对你有帮助也给一个star支持一下吧!周一 在贪心算法:用最少数量的箭引爆气球中,我们开始讲解了重叠区间问题,用最少的弓箭射爆所有气球,其本质就是找到最大的重叠区间。 按照左边界经行排序后,如果气球重叠了,重叠气球中右边边界的最...

刷题笔记:贪心算法【代码】【图】

前言 ??顾名思义,贪心算法或贪心思想采用贪心的策略,保证每次操作都是局部最优的,从而使最后得到的结果是全局最优的。 leetcode 455??因为饥饿度最小的孩子最容易吃饱,所以我们先考虑这个孩子。为了尽量使得剩下的饼干可以满足饥饿度更大的孩子,所以我们应该把大于等于这个孩子饥饿度的、且大小最小的饼干给这个孩子。满足了这个孩子之后,我们采取同样的策略,考虑剩下孩子里饥饿度最小的孩子,直到没有满足条件的饼干存在。...