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

455.分发饼干

优先把小饼干分给胃口值小的,或者是把大饼干分给胃口大的。

376. 摆动序列

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;
    }
};

这里有一些初始值的设置是为了应对一些特殊情况的

1.int result = 1;因为当nums尺寸大于等于2时,摆动序列长度至少为1;

2.(preDiff <= 0 && curDiff > 0) || (preDiff >= 0 && curDiff < 0)

这里加上等于号是因为中间存在平坡的情况,如果不加等于号的话,第一个2其实也算摆动序列,但是不会被计入。

3.if ((preDiff <= 0 && curDiff > 0) || (preDiff >= 0 && curDiff < 0)) {
                result++;
                preDiff = curDiff; // 注意这里,只在摆动变化的时候更新prediff
            }

这里只在摆动变化时更新pre是为了防止非严格单调上升的序列在平坡开始处和平坡截止处各计算一次,导致摆动序列结果多了。

53. 最大子序和

需要两个参数,一个用来记录当前遍历的连续元素之和count,一个用来记录最后的结果result

当count<0的时候,证明for循环当前遍历的元素对整个组合起到了副作用,同时,由于要求子序和是连续的,也就是说count包含的所有元素对子序和都起到了副作用,只能将这一段直接放弃,重新计算字符和,

当得到新的子序和后,将其与result进行比较(这里也是result设置成

 INT32_MIN

的原因,是为了防止即使nums中的元素远小于0,result也可以储存下nums元素的信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/629403.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PostgreSQL扩展之PGroonga:多语言全文搜索

简介 PGroonga 是一个 PostgreSQL 扩展&#xff0c;它增加了基于 Groonga 的全文搜索索引方法。虽然原生的 PostgreSQL 支持全文索引&#xff0c;但它仅限于基于字母和数字的语言。PGroonga 提供了更广泛的字符支持&#xff0c;使其成为 PostgreSQL 支持的语言的超集&#xff…

Ubuntu20.04调试功能包的一些报错解决办法【更新中2024.05.14】

一、Could not find a package configuration file provided by “catkin_virtualenv” 解决办法&#xff1a; sudo apt install ros-noetic-catkin-virtualenv二、 ERROR: Could not find a version that satisfies the requirement pip-tools5.1.2 (from versions: none) …

将PDF转换成电子杂志,轻松打造畅销内容!

在数字化时代&#xff0c;将PDF转换成电子杂志是一种非常受欢迎的内容创作方式。这种方式不仅可以提高内容的传播效果&#xff0c;还可以为创作者带来更多的收益。那么&#xff0c;如何轻松地将PDF转换成电子杂志&#xff0c;打造畅销内容呢&#xff1f; 市面上有许多可以将PDF…

战网国际服加速器用哪个好 暴雪战网好用加速器介绍

战网国际版&#xff0c;又称Battle.net环球版&#xff0c;是暴雪娱乐操盘的全球性游戏互动平台&#xff0c;它跨越地理界限&#xff0c;服务于全球游戏爱好者。与地区限定版本相异&#xff0c;国际版赋予玩家自由进入暴雪旗下众多经典游戏的权利&#xff0c;无论身处何方&#…

【Linux 网络】网络基础(二)(应用层协议:HTTP、HTTPS)-- 详解

我们程序员写的一个个解决我们实际问题&#xff0c;满足我们日常需求的网络程序&#xff0c;都是在应用层。 前面写的套接字接口都是传输层经过对 UDP 和 TCP 数据发送能力的包装&#xff0c;以文件的形式呈现给我们&#xff0c;让我们可以进行应用层编程。换而言之&#xff0c…

Go微服务: 接入Prometheus性能监控平台与Grafana平台

接入Prometheus 在 go-micro 生成的模板中, 我们一如既往的完成基础工作之后 进入main.go工作的代码编写&#xff0c;main.go package mainimport ("fmt""log""strconv""github.com/go-micro/plugins/v4/registry/consul"opentracing…

【nfs服务部署服务端和客户端搭建】

原理 NFS&#xff08;Network File System&#xff09;是文件服务器之一。它的功能是可以通过网络&#xff0c;让不同的机器、不同的操作系统可以彼此共享数据文件。 NFS服务器可以让服务端的共享目录挂载到本地端的文件系统中&#xff0c;其他服务器如果想访问共享目录&#…

OFDM 802.11a的FPGA实现(十六)长训练序列:LTS(含Matlab和verilog代码)

目录 1.前言2.原理3.Matlab生成长训练序列4.硬件实现5.ModelSim仿真6.和Matlab仿真结果对比 原文链接&#xff08;相关文章合集&#xff09;&#xff1a; OFDM 802.11a的xilinx FPGA实现 1.前言 在之前已经完成了data域数据的处理&#xff0c;在构建整个802.11a OFDM数据帧的时…

基于死区补偿的永磁同步电动机矢量控制系统simulink仿真模型

整理了基于死区补偿的永磁同步电动机矢量控制系统simulink仿真&#xff0c;该模型使用线性死区补偿的PMSM矢量控制算法进行仿真&#xff0c;使用Foc电流双闭环 。 1.模块划分清晰&#xff0c;补偿前后仿真有对比&#xff0c;易于学习; 2.死区补偿算法的线性区区域可调; 3.自…

fyne更新GUI内容

fyne更新GUI内容 实现一个时钟界面&#xff0c;每秒钟更新一次。 package mainimport ("fyne.io/fyne/v2/app""fyne.io/fyne/v2/widget""time" )func updateTime(label *widget.Label) {formatted : time.Now().Format("2006-01-02 15:04…

Softing工业推出的edgeConnector将Allen-Bradley控制器集成到工业边缘应用中

2024年4月17日&#xff08;哈尔&#xff09;&#xff0c;Softing宣布扩展其基于Docker的edgeConnector产品系列&#xff0c;推出了新软件模块edgeConnector Allen Bradley PLC&#xff0c;可方便用户访问来自ControlLogix和CompactLogix控制器数据。 &#xff08;edgeConnector…

LSTM与GAN创新结合!模型性能起飞,准确率超98%

今天来聊一个深度学习领域非常具有创新性的研究方向&#xff1a;LSTM结合GAN。 LSTM擅长处理和记忆长期的时间依赖关系&#xff0c;而GAN可以学习复杂的数据分布并生成逼真的数据样本。通过充分结合两者的优势&#xff0c;我们可以增强模型对复杂数据的处理能力&#xff0c;提…

二叉树的常见操作

建立树 复制二叉树 计算深度 计算总结点数 计算叶子结点数

GPT-4o、GPT-4国内可用!新UI界面率先体验方法!

测试情况&#xff1a; 现根据测试结果&#xff0c;先对比一下普号4o和付费的区别&#xff1a; 注&#xff1a; plus限制情况&#xff1a;4的次数用完后可以用4o&#xff0c;但4o的80条用完后不能用4&#xff1b; team账户限制是100条/3h&#xff0c;4o和4共享额度 目前发现的…

2024最新洗地机推荐,洗地机怎么选?热门品牌哪个最好用?

在现代生活中&#xff0c;忙碌的日常让家庭清洁变得更加繁重和耗时。然而&#xff0c;洗地机的引入彻底改变了这一状况。凭借其强大的清洁效果和简便的使用方式&#xff0c;洗地机能够迅速清除地面上的各种污垢&#xff0c;使清洁工作变得轻松自如。正因为如此&#xff0c;洗地…

yolov8使用与训练步骤

第一&#xff1a;安装miniconda 网址&#xff1a;Index of /anaconda/miniconda/ 登录网址后 在网页按ctrF 输入&#xff1a;搜py38 Miniconda3-py38_22.11.1-1-Windows-x86_64.exe 52.5 MiB 2022-12-23 07:57 下载进行安装 安装过程中记得加环境变量这个项。 第二…

活字格如何复制指定单元格中的内容

1、安装插件“复制到剪贴板”后。 2、在需要执行复制的命令中&#xff0c;选择“复制到剪贴板” 3、选择源单元格。 4、执行看效果。

高效调度新篇章:详解DolphinScheduler 3.2.0生产级集群搭建

转载自tuoluzhe8521 导读&#xff1a;通过简化复杂的任务依赖关系&#xff0c; DolphinScheduler为数据工程师提供了强大的工作流程管理和调度能力。在3.2.0版本中&#xff0c;DolphinScheduler带来了一系列新功能和改进&#xff0c;使其在生产环境中的稳定性和可用性得到了显著…

企业研发必备网络:这些关键特性,你get了吗?

对于以研发为核心的企业&#xff0c;如软件开发、生物制药、智能汽车等&#xff0c;安全、稳定的研发网络可是他们业务发展不可或缺的。那么&#xff0c;这些研发网络究竟有哪些独特之处&#xff0c;又能为企业带来哪些价值呢&#xff1f; 首先&#xff0c;我们知道企业研发常常…