代码随想录算法训练营第二十七天|LeetCode455.分发饼干、LeetCode376. 摆动序列、LeetCode53. 最大子序和

代码随想录算法训练营23天 | ​​455.分发饼干、376. 摆动序列、53. 最大子序和 本文总结了贪心算法的理论基础和三个典型应用:分发饼干、摆动序列和最大子序和问题。贪心算法的核心是局部最优解导向全局最优解。分发饼干问题采用大小匹配策略,摆动序列通过识别坡度变化点来统计峰值,最大子序和则通过舍弃负和来维护最大连续和。每个问题都给出了详细的解题思路和代码实现,并讨论了边界条件和特殊情况处理。这些案例展示了贪心算法在实际问题中的应用模式,为后续学习动态规划解法奠定了基础。 阅读详情

目录

前言

LeetCode455.分发饼干

LeetCode376. 摆动序列

LeetCode53. 最大子序和

一、LeetCode455.分发饼干

题目链接:

代码:

二、LeetCode376. 摆动序列

 题目链接:

代码:

三、LeetCode53. 最大子序和

 题目链接:

代码:


前言

LeetCode455.分发饼干

文章讲解:代码随想录

视频讲解:LeetCode:455.分发饼干

LeetCode376. 摆动序列

文章讲解:代码随想录

视频讲解:LeetCode:376.摆动序列

LeetCode53. 最大子序和

文章讲解:代码随想录

视频讲解:LeetCode:53. 最大子序和


一、LeetCode455.分发饼干

题目链接:

455. 分发饼干 - 力扣(LeetCode)

代码:

class Solution {
public:
    int findContentChildren(vector<int>& g, vector<int>& s) {
        sort(g.begin(), g.end());
        sort(s.begin(), s.end());
        int result = 0;
        int index = s.size() - 1;
        for(int i = g.size() - 1; i >= 0; i--)
        {
            if(index >= 0 && g[i] <= s[index])
            {
                result++;
                index--;
            }
        }
        return result;
    }
};

二、LeetCode376. 摆动序列

 题目链接:

376. 摆动序列 - 力扣(LeetCode)

代码:

class Solution {
public:
    int wiggleMaxLength(vector<int>& nums) {
        if(nums.size() <= 1) return nums.size();
        int curDiff = 0;
        int preDiff = 0;
        int result = 1;
        for(int i = 1; i < nums.size(); i++)
        {
            curDiff = nums[i] - nums[i - 1];
            if((preDiff >= 0 && curDiff < 0) || (preDiff <= 0 && curDiff >0))
            {
                preDiff = curDiff;
                result++;
            }
        }
        return result;
    }
};

三、LeetCode53. 最大子序和

 题目链接:

53. 最大子数组和 - 力扣(LeetCode)

代码:

class Solution {
public:
    int maxSubArray(vector<int>& nums) {
        int result = INT_MIN;
        int count = 0;

        for(int i = 0; i < nums.size(); i++)
        {
            count += nums[i];
            if(result < count)
                result = count;
            if(count < 0)
                count = 0;
        }
        return result;
    }
};
Sentence-BERT 语义相似度双塔模型 论文介绍 发表:2019,EMNLP 论文题目:《Sentence-BERT:sentence embeddings using siaese BERT-networks》 论文地址:https://arxiv.org/abs/1908.10084 Github:https://github.com/UKPLab/sentence-transformers 适用领域: 句向量生成 语义相似度计算 语义搜索 无监督任务(聚类) 1 概述 在20年之前的各种预训练模型中,比如bert,XLNet,Alb 阅读详情

相关推荐

零基础微信理财通基金实操指南(2026版)

先活下来:保证不亏大钱,再想赚钱慢慢变富:年化10%,7年翻倍,这已经很好了开始比完美重要:今天先存100元到零钱通,就是最好的开始现在打开微信,进入理财通,完成第一步风险测评吧!有任何问题可以随时问,我会用最通俗的方式解释。

老韩的Linux云计算架构师进阶之路 1688

代码随想录算法训练营第二十七天|LeetCode455.分发饼干、LeetCode376.摆动序列、LeetCode53.最大子序和

打卡代码随想录算法训练营第49期第二十六天(( へ(へ′∀`)へ首先十分推荐学算法的同学可以先了解一下代码随想录,可以在B站。

tancxiaohei23的博客 698

手动以及使用torch.nn实现前馈神经网络实验

手动以及使用torch.nn实现前馈神经网络 手动实现前馈神经网络解决上述回归、二分类、多分类任务 利用torch.nn解决上述回归、二分类、多分类任务 在多分类任务中使用至少三种不同的激活函数 对多分类任务中的模型评估隐藏层层数和隐藏单元个数对实验结果的影响

m0_52910424的博客 9372

代码随想录算法训练营第二十七天| leetcode455.分发饼干、leetcode2410. 运动员和训练师的最大匹配数、leetcode376. 摆动序列、leetcode53. 最大子序和

思路:不会,真的有一点不知道从哪儿下手的感觉。

angela3264的博客 879

python自动交易 缠论_缠论自动交易系统实现了

一、缘起:缠中说禅的伟大,我想你只要上网搜索一下就知道了,他的才气不用我说,我只想说说他的《教你炒股票》系列文章,108篇文章,将他的股票操盘秘籍全部公开给广大的股友了,更有缠友将其理论写成公式,在网上也是广为流传,深受广大缠友们的喜爱。我也是缠中说禅的忠实崇拜者之一,从2008年开始每天都使用缠论来看盘,特别想将缠论写成交易系统,让计算加来帮助我们自动交易,从而减轻我们盯盘的辛劳,可是苦于没有好...

weixin_39970689的博客 4637

使用Hyper-V使用下载下来的macOS安装引导安装macos

然后关闭工具返回安装界面选择第二个reinstall,选择119g那个硬盘。我的资源上传了:macOS Monterey on Hyper-V.7z。设置固件的启动顺序,引导安装盘放到第一位,mac安装110g放第二。选择disk utility格式化那个110g。下载解压的macos引导挂载到虚拟硬盘。其他设置安全禁用,检查禁用,集成都选中。新建一个虚拟硬盘装mac,110g。

viviliving的专栏 3023

代码随想录算法训练营第二十七天| LeetCode455 分发饼干、LeetCode376 摆动序列 、LeetCode53. 最大子序和

然后通过一个while loop i < len(g) and j < len(s),如果s[j] >= g[i]则找到一个满足条件的,如果不满足,则j+=1,让饼干的pointer指向下一个饼干,然后继续比较;看完随想录后:我的想法非常直接的想去遍历两个数组,尽管在写代码的时候才发现饼干的大小才是关键,饼干数组是决定最终有多少个饼干被分发出去的关键,所以饼干已经是要被先遍历一遍的,但是在一开始分析的时候,并没有注意这一点。看完随想录后:需要考虑的东西很多,还是感觉理解的不到位,但是又说不上来。

weixin_67709152的博客 295

LabView实战:精准实现float到十六进制的转换与高低位拆分

本文详细讲解了在LabVIEW中实现单精度浮点数(float)到十六进制字符串转换,并进行高低16位拆分的实战方法。针对工业通信中设备协议要求,核心使用强制类型转换(Type Cast)获取内存原始数据,避免数值转换错误,并提供了完整的VI构建步骤、交叉验证技巧及常见踩坑经验(如字节序、字符串格式),确保数据通信的准确性。

assembly8low的博客 1767

_27LeetCode代码随想录算法训练营第二十七天-贪心算法 | 455.分发饼干、376.摆动序列、53.最大子序和

_27LeetCode代码随想录算法训练营第二十七天-贪心算法 | 455.分发饼干、376.摆动序列、53.最大子序和

Jasmine-Lily的博客 207

【飞控】MATLAB中UAV Toolbox Support Package for PX4 Autopilots和Pixhawk Pilot Support Package (PSP) 的关系?

区分UAV Toolbox Support Package for PX4 Autopilots和Pixhawk Pilot Support Package (PSP)

m0_58373406的博客 738

Python爬虫实战——如何自动爬取百度搜索结果页面

本文介绍了如何使用Python爬虫抓取百度搜索结果页面的内容,包括如何构建搜索URL、获取页面HTML、解析内容、处理翻页以及存储数据等。通过该教程,您可以轻松实现批量抓取百度搜索结果,并为后续的数据分析和处理打下基础。希望本文能为您在爬虫开发、数据分析等领域提供帮助。如果您在实际应用过程中遇到问题,可以参考反爬虫应对策略,并结合实际需求进行调整。

2201_76125261的博客 1711

代码随想录算法训练营第二十七天|455.分发饼干、376. 摆动序列、53. 最大子序和

思考:为了尽可能满足最多的孩子的胃口,则饼干应尽量不造成浪费,即每一块饼干都匹配给了饼干可以满足的胃口最大的孩子。题目中s存在空值,则当没有饼干的时候可以满足的孩子数量为0。为了达到每一块饼干都给了饼干可以满足的胃口最大的孩子,故需要把饼干由大到小、孩子胃口由大到小进行遍历,使得大饼干给了胃口大的孩子。用for循环由大到小遍历孩子的胃口,用指针由大到小遍历饼干尺寸,当饼干尺寸可以满足孩子胃口时,指针左移,计数结果+1.

qq_42493281的博客 381

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

代码随想录算法训练营Day23 | Leetcode 455分发饼干、376摆动序列、53最大子序和

对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j]。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是满足尽可能多的孩子,并输出这个最大数值。给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。假设你是一位很棒的家长,想要给你的孩子们一些小饼干。可以通过从原始序列中删除一些(也可以不删除)元素来获得,剩下的元素保持其原始顺序。

叽里呱啦大王的博客 948

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

代码随想录算法训练营第二十七天 | 455.分发饼干,376. 摆动序列 ,53. 最大子序和

其实并不会,因为还有一个变量 result 一直在更新 最大的连续和,只要有更大的连续和出现,result 就更新了,那么 result 已经把 4 更新了,后面 连续和变成 3,也不会对最后结果有影响。在计算是否有峰值的时候,大家知道遍历的下标 i ,计算 prediff=nums[i] - nums[i-1] 和 curdiff=nums[i+1] - nums[i],如果。注意版本一的代码中,可以看出来,是先遍历的胃口,在遍历的饼干,那么可不可以 先遍历 饼干,在遍历胃口呢?

懒羊羊在努力的博客 1369

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

代码随想录算法训练营Day31 | 455.分发饼干、376.摆动序列、53.最大子数组和

训练营第31天:455.分发饼干、376.摆动序列、53.最大子数组和

jiabao0520的博客 1347

代码随想录算法训练营第二十三天| 455. 分发饼干、376. 摆动序列、53. 最大子序和

贪心算法真是给了个下马威,一下子难以彻底消化贪心算法的使用。目前看来,贪心算法最重要的还是找到题目中什么是局部最优,这样才好进行下一步。

weixin_43831376的博客 1045

代码随想录算法训练营第三十一天 | 455.分发饼干、376. 摆动序列、53. 最大子序和

我们要让首部元素和中间元素一样判断,那么就假设首部前面有一个相等的元素,这时就和第二个问题产生关联了,因为这个时候就出现了相等的元素,于是判断里就变成了preDiff<=0 && curDiff >0 || preDiff>=0 && curDiff<0,这时要在中间元素测试一下看看有什么漏洞,我们会发现当中间元素出现相等时,无非两种情况,最后“摆动”起来了,最后没“摆动”,然后会发现在相等的这个平坡开始处不会记录,同样首部前一个虚拟元素不会被记录;假设你是一位很棒的家长,想要给你的孩子们一些小饼干。

Tong_1024_的博客 860

【代码随想录训练营第42期 Day27打卡 贪心Part1 - LeetCode 455.分发饼干 376. 摆动序列 53. 最大子序和

贪心

记得要努力变强 1407

代码随想录算法训练营第三十一天 | 455.分发饼干,376. 摆动序列, 53. 最大子序和[贪心算法篇]

分发饼干、摆动序列、最大子序和、力扣

leehal的博客 1071

代码随想录算法训练营第27 天 |LeetCode455.分发饼干 LeetCode376. 摆动序列 LeetCode53. 最大子序和

贪心算法

2301_79647020的博客 1234

代码随想录算法训练营第二十七天| 贪心算法理论基础 455.分发饼干 376. 摆动序列 53. 最大子序和

贪心算法的设计思路有待琢磨文章图片来源:代码随想录 (https://programmercarl.com/)

Mwicogito的博客 888

代码随想录训练营Day22 | 455.分发饼干 - 376. 摆动序列 - 53. 最大子数组和

【代码】代码随想录训练营Day21 | 455.分发饼干 - 376. 摆动序列 - 53. 最大子数组和。

Zuoriqiufeng的博客 729

代码随想录算法训练营第二十三天 | LeetCode455.分发饼干、LeetCode376.摆动序列、LeetCode53.最大子序和

贪心算法并没有固定的套路,靠自己手动模拟感觉可以局部最优推出整体最优,如果模拟可行,就可以试一试贪心策略,如果不可行,可能需要动态规划。:只想到了两次for循环暴力求解,但是失去了算法题的意义,我记得《算法之魂》这本书详细讨论过这道题,但我还是不得要领。,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。,这个孩子会得到满足。:贪心策略:先给孩子的胃口和饼干的大小从小到大排序,然后依次满足小胃口孩子。做题的时候,只要想清楚局部最优是什么,如果推导出全局最优,其实就够了。

zhuabazhuabahuo的博客 557

代码随想录算法训练营第二十七天 | 455.分发饼干 376.摆动序列 53.最大子序列和

在计算是否有峰值的时候,大家知道遍历的下标 i ,计算 prediff(nums[i] - nums[i-1]) 和 curdiff(nums[i+1] - nums[i]),如果prediff < 0 && curdiff > 0 或者 prediff > 0 && curdiff < 0 此时就有波动就需要统计。输入: [-2,1,-3,4,-1,2,1,-5,4] 输出: 6,连续子数组[4,-1,2,1] 的和最大,为 6。视频讲解:​​​​​​​。视频讲解:​​​​​​​。

m0_50413530的博客 740

代码随想录训练营Day 34|力扣455.分发饼干、376. 摆动序列、53. 最大子序和

思路:这里贪心的就是:用小饼干去满足更多的胃口小的朋友。。我这里又犯错了:我一开始没有考虑我在匹配胃口的时候,也让g数组不要越界。

weixin_64434454的博客 775

代码随想录算法训练营 day31 |贪心算法理论基础、455.分发饼干、376. 摆动序列、53. 最大子序和

贪心的本质是选择每一阶段的局部最优,从而达到全局最优。想清楚局部最优,想清楚全局最优,感觉局部最优是可以推出全局最优,并想不出反例,那么就试一试贪心。

weixin_42179093的博客 538
上一篇: 代码随想录算法训练营第二十五天|LeetCode491.递增子序列、LeetCode46.全排列、LeetCode47.全排列 II、LeetCode51.N皇后、LeetCode37.解数独
下一篇: 代码随想录算法训练营第二十八天|LeetCode122.买卖股票的最佳时机II、LeetCode55. 跳跃游戏、LeetCode45.跳跃游戏II、LeetCode1005.K次取反后最大化的数组和
hellogarbage
博客等级 码龄6年 145粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值