代码随想录 -- day31 -- 455.分发饼干 、376. 摆动序列 、53. 最大子序和

搭建一个简单的 Django + Vue 项目 在本文中,我将为您详细介绍如何搭建一个简单的 Django + Vue 项目。Django 是一个使用 Python 编写的高级 Web 框架,而 Vue 是一个流行的 JavaScript 框架,用于构建用户界面。通过结合 Django 和 Vue,我们可以创建强大的全栈 Web 应用程序。创建 Django 项目设置 Django 后端创建 Vue 前端连接 Django 和 Vue让我们开始吧! 阅读详情

455.分发饼干

思路:

局部最优解: 大饼干喂给胃口大的。

全局最优解:喂饱尽可能多的小孩。

class Solution {
public:
    int findContentChildren(vector<int>& g, vector<int>& s) {
        sort(g.begin(), g.end());
        sort(s.begin(), s.end());
        int index = s.size() - 1; // 饼干数组的下标
        int result = 0;
        for (int i = g.size() - 1; i >= 0; i--) { // 遍历胃口
            if (index >= 0 && s[index] >= g[i]) { // 遍历饼干
                result++;
                index--;
            }
        }
        return result;
    }
};

376. 摆动序列

思路:

局部最优解:删除单调坡度上的节点

全局最优解:整个序列最多的局部峰值,从而达到最长摆动序列

实际操作上,其实连删除的操作都不用做,因为题目要求的是最长摆动子序列的长度,所以只需要统计数组的峰值数量就可以了(相当于是删除单一坡度上的节点,然后统计长度)

prediff = nums[i] - nums[i - 1] 和 curdiff = nums[i + 1]

满足的条件:((prediff < 0 && curdiff  > 0) || (prediff > 0 && curdiff < 0))

但是要注意三个情况

  1. 上下坡中有平坡
  2. 数组首尾两端
  3. 单调坡中的平坡  

1、上下坡中有平坡

我们统一规则,只保留最右边的,那图中的情况就是prediff = 0 && cur < 0

所以满足的条件更改为: ((prediff <= 0 && curdiff  > 0) || (prediff >= 0 && curdiff < 0))

2、 数组首尾两端

题目中说了,如果只有两个不同的元素,那摆动序列也是 2

比如[2, 5]我们该如何定义呢,我们把他们看成是[2, 2, 5]

 针对以上情形,result 初始为 1(默认最右面有一个峰值),此时 curDiff > 0 && preDiff <= 0,那么 result++(计算了左面的峰值),最后得到的 result 就是 2(峰值个数为 2 即摆动序列长度为 2)

3、单调坡中的平坡

[1, 2, 2, 2, 3, 4]这种类型,我们要注意最后一个2,就是我们更新条件的时候是满足了条件之后,让prediff = curdiff,然后继续遍历

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 = 0; i < nums.size() - 1; i++) {
            curDiff = nums[i + 1] - nums[i];
            // 出现峰值
            if ((preDiff <= 0 && curDiff > 0) || (preDiff >= 0 && curDiff < 0)) {
                result++;
                preDiff = curDiff; // 注意这里,只在摆动变化的时候更新prediff
            }
        }
        return result;
    }
};


53. 最大子序和 

 思路:

局部最优解:当前连续和如果结果为负数,就从下一个元素开始记录元素和

全局最优解:选取最大连续和

class Solution {
public:
    int maxSubArray(vector<int>& nums) {
        int result = INT32_MIN;
        int count = 0;
        for (int i = 0; i < nums.size(); i++) {
            count += nums[i];
            if (count > result) { // 取区间累计的最大值(相当于不断确定最大子序终止位置)
                result = count;
            }
            if (count <= 0) count = 0; // 相当于重置最大子序起始位置,因为遇到负数一定是拉低总和
        }
        return result;
    }
};

一文吃透 Tools for Applying SAP Notes:从 SNOTE、TCI 到 Solution Manager 与 SAP Cloud ALM 本文系统梳理了SAP技术与运维团队应用SAP Notes的高效工具与方法,涵盖On-Premise与云环境。文章首先阐述了精研SAP Notes工具的必要性,指出其是实施错误修复、法务变更和性能改进的关键载体。随后详细介绍了SNOTE、TCI、Solution Manager、Cloud ALM和Maintenance Planner等核心工具的定位与适用场景,并通过采购异常案例展示了标准更正流程。针对复杂修复场景,文章提出了TCI的批量处理方案,并强调将Note实施纳入变更治理流程的重要性。最后总结了三种 阅读详情

相关推荐

《商用密码应用与安全性评估》第四章密码应用安全性评估实施要点4.1密码应用方案设计

密码应用方案设计

qq_40442137的博客 1470

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

贪心的本质是选择每一阶段的局部最优,从而达到全局最优。本题要使不同大小的饼干和胃口之间得到合理的分配,为了满足更多的小孩,就不要造成饼干尺寸的浪费。大尺寸的饼干既可以满足胃口大的孩子也可以满足胃口小的孩子,那么就应该优先满足胃口大的(或者小尺寸的饼干优先分给胃口小的)。本题要求通过从原始序列中删除一些(也可以不删除)元素来获得子序列,剩下的元素保持其原始顺序。如果能够画出序列上下摆动的坡度图就能很好理解。局部最优:删除单调坡度上的节点(不包括单调坡度两端的节点),那么这个坡度就可以有两个局部峰值。

m0_68682181的博客 2552

ESP32-CAM实战:从零构建高精度QR二维码识别系统

本文详细介绍了如何使用ESP32-CAM构建高精度QR二维码识别系统,涵盖硬件配置、开发环境搭建、二维码识别库选择与优化、完整系统实现及实战问题排查。通过优化识别算法和电源管理,系统可实现快速、稳定的二维码识别,适用于物联网设备绑定等场景。

weixin_42524703的博客 433

代码随想录Day.31 | 455. 分发饼干、376. 摆动序列、53. 最大子序和

有两种情况:1. 该阶段中的负数累加到sum上后的值<0,则刷新累加和sum,和局部累加和sumb。2. 改变连续子区间的起点和终点,在子区间累加和<0后,使子区间累加和=0,相当于重新设置起点;其中,for循环时由饼干的数组控制的,原因在于,如果当前小孩和饼干不匹配的话,即当前饼干不是能满足小孩的最小尺寸饼干,应该用下一块饼干去匹配当前小孩。假如用,下一个小孩去匹配当前饼干,而在当前小孩都不匹配的情况下,下一个胃口更大的小孩更不可能匹配,这就导致在一个for循环下,找不到任何一对匹配的。

papilon_的博客 951

酒店前台pms管理系统

对于酒店经营者来说,选择一款优秀的管理系统,是提升运营效率、优化客人体验的关键。PMS酒店管理系统凭借其强大的房态管理、实时数据监控、OTA直联、无人值守等功能,已经成为许多酒店提升管理水平的得力助手。无论是大中型酒店,还是小型民宿,PMS系统都能根据不同需求提供量身定制的解决方案,帮助酒店实现精细化管理、提高运营效率。如果你也在为酒店管理中的繁琐琐事而困扰,不妨尝试一下PMS酒店管理系统,感受科技带来的便利与高效,让你的酒店运营更上一层楼!

2409_89897808的博客 2483

多角度模板匹配的模板创建技巧

基于形状的模板匹配多角度创建技巧

manuoo的专栏 3402

【代码随想录算法训练营Day31】理论基础; 455.分发饼干; 376.摆动序列; 53.最大子序和

弯路:一开始用的是for循环但for循环中遍历的是饼干,应该遍历小孩的胃口,因为for循环会风雨无阻的–贪心算法其实就是没有什么规律可言,所以大家了解贪心算法 就了解它没有规律的本质就够了。基本贪心的题目 有两个极端,要不就是特简单,要不就是死活想不出来。学完贪心之后再去看动态规划,就会了解贪心和动规的区别。不用花心思去研究其规律, 没有思路就立刻看题解。局部最优:用大饼干满足尽量大胃口的孩子。也可以用小饼干尽量满足胃口小的孩子。利用for循环遍历小孩胃口。

Tammy2001的博客 1150

从零开始跑通3DGS教程:(三)坐标系与尺度编辑(CloudCompare)

本文所属《从零开始跑通3DGS教程》系列文章; sfm重建的点云已经丢掉了尺度信息,并且坐标系跟图像数据有关(SFM初始化选择的图像),所以如果想恢复物理真实尺度,以及在想要的视角下渲染,那么需要对尺度和坐标系进行编辑修正,下文介绍如何使用CloudCompare修改坐标系和尺度

诺有缸的高飞鸟的博客 2871

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

贪心的本质是选择每一阶段的局部最优,从而达到全局最优。这么说有点抽象,来举一个例子:例如,有一堆钞票,你可以拿走十张,如果想达到最大的金额,你要怎么拿?指定每次拿最大的,最终结果就是拿走最大数额的钱。每次拿最大的就是局部最优,最后拿走最大数额的钱就是推出全局最优。说实话贪心算法并没有固定的套路。所以唯一的难点就是如何通过局部最优,推出整体最优。最好用的策略就是举反例,如果想不到反例,那么就试一试贪心吧。

qq_60513199的博客 955

【模型之美】3、文本聚类与智能摘要,让AI帮你做个总结

在信息过载时代,文本聚类与摘要技术成为关键工具。本文提出了一种结合OpenAI Embedding与传统机器学习的方法,实现从文本预处理到智能分析的完整流程。技术方案分为三阶段:1)通过Embedding将文本转化为语义向量;2)采用K-Means等算法进行无监督聚类;3)利用大模型生成可解释的标签和摘要。实验证明,该方法能有效提升信息处理效率,如在新闻聚合系统中自动分类10,000篇文章,准确率较传统方法提高15%。方案包含实用代码示例,涵盖文本清洗、向量化、聚类优化等关键技术细节,可应用于对话记忆、舆情

2025博客之星Top81。专注AI工程化与架构实战。从分布式思维到模型部署,用工程化视角为你厘清AI落地的真实路径。 1439

YOLO11-Seg优化:注意力魔改 | 具有切片操作的SimAM注意力,魔改SimAM

问题点:SimAM计算整张特征图的像素差平均值时加权可能会忽略小目标的重要性,同时与整体平均值相比可能和背景信息相似,导致加权增强较弱;

会AI的学姐 458

代码随想录Day31 | 贪心算法 455.分发饼干 376. 摆动序列 53. 最大子序和

Day31

sRiddle的博客 530

使用R包PreMSIm预测微卫星不稳定的标题:基于基因表达量的微卫星不稳定性预测

在本文中,我们将介绍如何使用R语言中的PreMSIm包来根据基因表达量进行微卫星不稳定性的预测。需要注意的是,本文仅介绍了使用PreMSIm包进行微卫星不稳定性预测的基本流程和代码示例。在实际应用中,还需要考虑数据的质量控制、模型优化以及结果的解释和验证等因素,以确保预测结果的准确性和可靠性。预测结果将返回一个包含微卫星不稳定性指数的向量,其中每个元素对应一个样本的预测结果。在有了输入数据后,我们可以使用PreMSIm包中的函数进行微卫星不稳定性的预测。函数生成一个包含所有样本的微卫星不稳定性信息的表格。

2301_79330511的博客 382

零基础代码随想录【Day31】|| 贪心算法理论基础,455.分发饼干,376. 摆动序列,53. 最大子序和

例如, [1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3) 是正负交替出现的。相反, [1,4,7,2,5] 和 [1,7,4,5,5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。针对以上情形,result 初始为 1(默认最右面有一个峰值),此时 curDiff > 0 && preDiff <= 0,那么 result++(计算了左面的峰值),最后得到的 result 就是 2(峰值个数为 2 即摆动序列长度为 2)

Andrew______的博客 758

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

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

这类输出结果为2,不能将perDiff = curDiff 每次循环改变perDiff,preDiff没有必要跟着curDiff去实时更新,只需要在坡度有变化时,记录坡度方向,当坡度方向改变后才改变。2.两个元素[1,2],这种无法直接计算preDiff与curDiff,需要假设其为[1,1,2],再进行处理,这样就是输出结果为2,只需要将preDiff默认设置为0即可。其中一个是 [1, 17, 10, 13, 10, 16, 8] ,各元素之间的差值为 (16, -7, 3, -3, 6, -8)。

m0_68965961的博客 697

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

代码随想录day31| 理论基础 455.分发饼干 376. 摆动序列 53. 最大子序和

学习记录

rogue1207的博客 315

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

代码随想录Day31—455分发饼干 376摆动序列 53. 最大子序和

情况一:上下坡中有平坡。情况三:单调坡中有平坡。情况二:数组首尾两端。

lizhiqiang502的博客 76

代码随想录算法训练营三刷 day31 | 贪心之455.分发饼干 376. 摆动序列 53. 最大子序和

针对以上情形,result 初始为 1(默认最右面有一个峰值),此时 curDiff > 0 && preDiff <= 0,那么 result++(计算了左面的峰值),最后得到的 result 就是 2(峰值个数为 2 即摆动序列长度为 2)其实是长度是 3,也就是我们在删除的时候 要不删除左面的三个 2,要不就删除右边的三个 2。图中,我们可以看出,版本一的代码在三个地方记录峰值,但其实结果因为是 2,因为 单调中的平坡 不能算峰值(即摆动)。如果我们采用,删左面三个 2 的规则,那么 当。

baimaozi_007的博客 976

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

贪心算法,让每个饼干给到能够满足的孩子,所以需要对饼干尺寸和孩子的满足值先进行排序,然后针对每一个饼干的尺寸,挑选恰好能够满足的孩子(这里表述可能不准确,即从大到小,都选择能够满足的孩子,满足后结果返回值加1),这里选用while循环比较简单,具体代码如下。算法的时间复杂度为O(nlogn),排序需要O(nlogn),循环遍历一次需要O(n),总体需要O(nlogn)的复杂度,空间复杂度考虑排序需要的空间O(logn),其余所需的空间为O(1),所以空间复杂度应该为O(logn)。

github_35852648的博客 670

代码随想录算法训练Day31|贪心算法理论基础、LeetCode455-分发饼干、LeetCode376-摆动序列、LeetCode53-最大子序和

所以这也是为什么很多同学通过(accept)了贪心的题目,但都不知道自己用了贪心算法,

wish的博客 1147

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

贪心算法理论基础、455.分发饼干、376.摆动序列、53.最大子序和

weixin_46620779的博客 1361

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

先排序,大尺寸的饼干既可以满足胃口大的孩子也可以满足胃口小的孩子,那么就应该优先满足胃口大的。。只用if没用for,逻辑比较简单同理可以遍历最小的胃口,用最小的饼干满足(先饼干后胃口),反过来不行,要知道是什么在遍历,什么满足后累加两个循环的顺序改变了,先遍历的饼干,在遍历的胃口,这是因为遍历顺序变了,我们是从小到大遍历。

weixin_43793717的博客 196

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

对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。例如, [1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3) 是正负交替出现的。相反, [1,4,7,2,5] 和 [1,7,4,5,5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。给定一个整数序列,返回作为摆动序列的最长子序列的长度。只有这两种遍历方式。

weixin_43561267的博客 103

代码随想录二刷 day31 | 贪心之 理论基础 455.分发饼干 376. 摆动序列 53. 最大子序和

贪心之 理论基础 455.分发饼干 376. 摆动序列 53. 最大子序和

baimaozi_007的博客 179

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

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

Magical_Jasen的博客 529

代码随想录刷题Day31 | 455.分发饼干 | 376. 摆动序列 | 53. 最大子序和

代码随想录刷题Day31 | 455.分发饼干 | 376. 摆动序列 | 53. 最大子序和

DUM1615的博客 316
上一篇: 代码随想录 -- day30 -- 332.重新安排行程 、51. N皇后、37. 解数独
下一篇: 代码随想录 -- day32 -- 122.买卖股票的最佳时机II 、55. 跳跃游戏、 45.跳跃游戏II
七人酒
博客等级 码龄4年 51粉丝 65原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值