当前位置: 首页 > news >正文

【贪心算法】摆动序列

如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 。第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。

  • 例如, [1, 7, 4, 9, 2, 5] 是一个 摆动序列 ,因为差值 (6, -3, 5, -7, 3) 是正负交替出现的。

  • 相反,[1, 4, 7, 2, 5] 和 [1, 7, 4, 5, 5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。

子序列 可以通过从原始序列中删除一些(也可以不删除)元素来获得,剩下的元素保持其原始顺序。

给你一个整数数组 nums ,返回 nums 中作为 摆动序列 的 最长子序列的长度 。

示例 1:

输入:nums = [1,7,4,9,2,5]
输出:6
解释:整个序列均为摆动序列,各元素之间的差值为 (6, -3, 5, -7, 3) 。

示例 2:

输入:nums = [1,17,5,10,13,15,10,5,16,8]
输出:7
解释:这个序列包含几个长度为 7 摆动序列。
其中一个是 [1, 17, 10, 13, 10, 16, 8] ,各元素之间的差值为 (16, -7, 3, -3, 6, -8) 。

示例 3:

输入:nums = [1,2,3,4,5,6,7,8,9]
输出:2
class Solution {
public:int wiggleMaxLength(vector<int>& nums) {if(nums.size()==1)return 1;int prediff=0;int crudiff=0;int result=1;//记录峰值,默认最右边有一个峰值for(int i=0;i<nums.size()-1;i++){crudiff=nums[i+1]-nums[i];if((prediff>=0&&crudiff<0)||(prediff<=0&&crudiff>0)){result++;prediff=crudiff;//单调坡中有平坡,当峰值加1时,再赋值}}return result;}
};

相关文章:

【贪心算法】摆动序列

如果连续数字之间的差严格地在正数和负数之间交替&#xff0c;则数字序列称为 摆动序列 。第一个差&#xff08;如果存在的话&#xff09;可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。 例如&#xff0c; [1, 7, 4, 9, 2, 5] 是一个 摆动序列 &…...

Unload-labs

function checkFile() {var file document.getElementsByName(upload_file)[0].value;if (file null || file "") {alert("请选择要上传的文件!");return false;}//定义允许上传的文件类型var allow_ext ".jpg|.png|.gif";//提取上传文件的类…...

SRS-220VDC-4Z-10A静态中间继电器 额定电压DC220V 四副转换触点 JOSEF约瑟

系列型号&#xff1a; SRS-24VDC-4Z-8A静态中间继电器&#xff1b;SRS-24VDC-4Z-10A静态中间继电器&#xff1b; SRS-24VDC-4Z-16A静态中间继电器&#xff1b;SRS-24VAC-4Z-8A静态中间继电器&#xff1b; SRS-24VAC-4Z-10A静态中间继电器&#xff1b;SRS-24VAC-4Z-16A静态中…...

解决electron打包vue-element-admin项目页面无法跳转的问题

解决electron打包vue-element-admin项目页面无法跳转的问题 说明之前通过这个教程已经打包成功&#xff0c;但是发现进行账号密码登录后页面无法跳转的问题。现在已经解决&#xff0c;所以记录一下。 1、检查路由模式是否为hash模式&#xff0c;如果不是改成hash模式。 new Ro…...

Uniapp Vue2 image src动态绑定static目录下的图片

报错的static地址写法&#xff1a; this.url ../static/img.png this.url /static/img.png 正确的static地址写法&#xff1a; this.url /static/img.png 动态绑定 <image :src"url"></image>...

【UE5】动画混合空间的基本用法

项目资源文末百度网盘自取 什么是动画混合空间 混合空间分为两种: 通过一个数值控制通过两个数值控制 下面通过演示让大家更直观地了解 在Character文件夹中单击右键,选择动画(Animation),选择旧有的混合空间1D 然后选择骨骼&#xff08;动画是基于骨骼显示的,所以需要选择…...

用红黑树封装实现map和set

目录 1、map和set的底层 2、map与set中的key关键值 3、红黑树迭代器的实现。 1、操作 2、-- 操作 3、和!操作 4、在红黑树中封装迭代器 5、map和set对迭代器的封装 1、map map中[]的重载 2、set 1、map和set的底层 map和set都是基于红黑树实现的。红黑树是一种自平衡…...

【阿里云系列】-部署ACK集群的POD应用日志如何集成到日志服务(SLS)中

介绍 我们在实际部署应用到阿里云的ACK集群后&#xff0c;由于后期应用服务的持续维护诉求可能需要跟踪排查问题&#xff0c;此时就要具备将应用的历史日志存档便于后期排查问题 处理方式 为了解决以上的普遍需求&#xff0c;需要将ACK中的应用日志采集到SLS的Logstore中,然…...

Vue中给当前页面传递参数并重新加载,vue使用this.$router.push跳转页面,给跳转过去的页面传参不一致时重新加载

vue通过this.$router.push给url传参&#xff0c;改变url但是当前页面不会自动刷新 跳转页面代码 this.$router.push({name: allbusiness,query: {pw_id: item.id} });1.使用 watch 监听 $route 对象的变化&#xff0c;当路由发生变化时重新加载数据或执行其他操作。 2.利用路…...

【扩散模型(一)】综述:扩散模型在文本生成领域应用

一、论文信息 1 标题 Diffusion models in text generation: a survey 2 作者 Qiuhua Yi, Xiangfan Chen, Chenwei Zhang, Zehai Zhou, Linan Zhu, Xiangjie Kong 3 研究机构 1 College of Computer Science and Technology, Zhejiang University of Technology, HangZho…...

K8S Pod

基本概念 Pod是K8S中非常重要的概念之一&#xff0c;是整个K8S架构的基础和核心。Pod是K8S调度的最小单位&#xff0c;是一个不可拆分的独立个体&#xff0c;K8S将多个业务上相关联的容器&#xff08;Docker容器&#xff09;合并到一起&#xff0c;组合成一个Pod&#xff0c;这…...

反向传播(backward propagation,BP) python实现

BP算法就是反向传播&#xff0c;要输入的数据经过一个前向传播会得到一个输出&#xff0c;但是由于权重的原因&#xff0c;所以其输出会和你想要的输出有差距&#xff0c;这个时候就需要进行反向传播&#xff0c;利用梯度下降&#xff0c;对所有的权重进行更新&#xff0c;这样…...

简单算命脚本

效果展示 文件内容 main.py文件 import json import random import time# 别挂配置数据 gua_data_path "data.json"# 别卦数据 gua_data_map {} fake_delay 10# 读取别卦数据 def init_gua_data(json_path):with open(gua_data_path, r, encodingutf8) as fp:gl…...

Lua-掌握Lua语言基础1

Lua是一种轻量级的脚本语言&#xff0c;广泛应用于游戏开发、嵌入式系统和其他领域。下面是Lua语言基础的介绍&#xff1a; 数据类型&#xff1a;Lua支持基本的数据类型&#xff0c;包括nil、boolean、number、string和table。其中&#xff0c;table是一种关联数组&#xff0c;…...

python-0003-pycharm开发虚拟环境中的项目

前言 在虚拟环境中创建好了python项目&#xff0c;使用pycharm进行开发 打开项目 使用pycharm打开项目 设置虚拟环境的解释器 File–>Settings–>Project(项目名)–>Python Interpreter–>添加解释器–>添加已经存在的解释器–>选择虚拟环境的解释器 …...

修改 MySQL update_time 默认值的坑

由于按规范需要对 update_time 字段需要对它做默认值的设置 现在有一个原始的表是这样的 CREATE TABLE test_up (id bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 主键id,update_time datetime default null COMMENT 操作时间,PRIMARY KEY (id) ) ENGINEInnoDB DEF…...

基于亚马逊云EC2+Docker搭建nextcloud私有化云盘

亚马逊云科技EC2云服务器&#xff08;Elastic Compute Cloud&#xff09;是亚马逊云科技AWS&#xff08;Amazon Web Services&#xff09;提供的一种云计算服务。EC2代表弹性计算云&#xff0c;它允许用户租用虚拟计算资源&#xff0c;包括CPU、内存、存储和网络带宽&#xff0…...

用try...catch进行判断

在写一些提交数据的判断上&#xff0c;有时候会写下面的ifelse的判断方法&#xff0c;少一点还好&#xff0c;多的话就很难受也不好看。 if(!that.driverObj.contrary){this.__utils.showToast(请先上传驾驶证副页图片);return false } if(!this.driverObj.start){this.__util…...

服务器遭遇挖矿病毒syst3md及其伪装者rcu-sched:原因、症状与解决方案

01 什么是挖矿病毒 挖矿病毒通常是恶意软件的一种&#xff0c;它会在受感染的系统上无授权地挖掘加密货币。关于"syst3md"&#xff0c;是一种特定的挖矿病毒&#xff0c;它通过在受感染的Linux系统中执行一系列复杂操作来达到其目的。这些操作包括使用curl从网络下载…...

此机非彼机,工业计算机在工业行业的特殊地位

电子计算机&#xff0c;称为电脑。计算机是一种利用数字电子技术&#xff0c;根据一系列指令指示其自动执行任意算术或逻辑操作串行的设备。通用计算机因有能遵循被称为“程序”的一般操作集的能力而使得它们能够执行极其广泛的任务&#xff0c;以管理各种工厂和机器自动化工业…...

League-Toolkit:重新定义英雄联盟游戏体验的智能助手

League-Toolkit&#xff1a;重新定义英雄联盟游戏体验的智能助手 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League-Toolkit …...

Qwen3-14B芯片设计辅助:Verilog注释生成、RTL代码解释、DFT建议

Qwen3-14B芯片设计辅助&#xff1a;Verilog注释生成、RTL代码解释、DFT建议 1. 镜像概述与硬件适配 Qwen3-14B私有部署镜像是专为芯片设计工程师打造的AI辅助工具&#xff0c;基于通义千问大语言模型优化定制。该镜像完美适配RTX 4090D 24GB显存配置&#xff0c;预装了完整的…...

3步实现BERT模型轻量化部署与性能优化:基于Torch-Pruning的结构化剪枝指南

3步实现BERT模型轻量化部署与性能优化&#xff1a;基于Torch-Pruning的结构化剪枝指南 【免费下载链接】Torch-Pruning [CVPR 2023] Towards Any Structural Pruning; LLMs / Diffusion / Transformers / YOLOv8 / CNNs 项目地址: https://gitcode.com/gh_mirrors/to/Torch-P…...

Qwerty Learner字体优化:提升阅读体验的细节处理

Qwerty Learner字体优化&#xff1a;提升阅读体验的细节处理 【免费下载链接】qwerty-learner 为键盘工作者设计的单词记忆与英语肌肉记忆锻炼软件 / Words learning and English muscle memory training software designed for keyboard workers 项目地址: https://gitcode.…...

Wan2.1视频生成小白必看:避开这些坑,让你的视频生成一次成功

Wan2.1视频生成小白必看&#xff1a;避开这些坑&#xff0c;让你的视频生成一次成功 1. 为什么你的视频生成总是失败&#xff1f; 很多新手第一次使用Wan2.1视频生成模型时&#xff0c;都会遇到各种问题&#xff1a;生成的视频模糊不清、内容与描述不符、甚至直接失败。这通常…...

【Leetcode LCR 112】【记忆化搜索】矩阵中的最长递增路径

题目跳转 这一道题十分有意思(bushi)&#xff0c;我们来一起看一下 1.题目考点与理解 主要考点: 记忆化搜索DFS 的递归思想与状态定义方向遍历与边界合法性判断 主要理解: 重要理解1 : 不一定要从最小的111开始&#xff0c;每一个都需要遍历(贪心思想错误) 重要理解2&#…...

OpenClaw数据安全:Qwen3.5-4B-Claude本地处理敏感合同

OpenClaw数据安全&#xff1a;Qwen3.5-4B-Claude本地处理敏感合同 1. 为什么法律行业需要本地化AI处理 去年我参与了一个法律科技项目&#xff0c;团队最初尝试用公有云API处理合同文本时&#xff0c;遭遇了客户对数据出海的强烈抵触。某次演示中&#xff0c;当法务总监看到合…...

GLM-4-9B-Chat-1M与Dify平台集成:无代码长文本处理系统搭建

GLM-4-9B-Chat-1M与Dify平台集成&#xff1a;无代码长文本处理系统搭建 1. 引言 想象一下&#xff0c;你手头有一份200页的法律合同需要快速审核&#xff0c;或者需要分析整本学术专著的核心观点&#xff0c;甚至要处理多语言的长篇商业文档。传统的人工处理方式耗时耗力&…...

从Dify到Coze再回来:一个后端开发用Gin+Swagger构建AI工作流的踩坑实录

从Dify到Coze再回来&#xff1a;一个后端开发用GinSwagger构建AI工作流的踩坑实录 作为一名长期使用Gin框架的后端开发者&#xff0c;当我第一次尝试将现有服务接入Dify平台构建AI工作流时&#xff0c;本以为会是一次顺畅的旅程。毕竟&#xff0c;我们的API已经通过Swagger 2.0…...

Mojo加速Python科学计算:如何在72小时内将AI推理速度提升8.6倍(附完整可运行代码)

第一章&#xff1a;Mojo与Python混合编程概述Mojo 是一种为 AI 系统量身打造的现代系统编程语言&#xff0c;兼具 Python 的易用性与 C/C 的执行效率。它原生兼容 Python 生态&#xff0c;允许开发者在同一个项目中无缝调用 Python 模块、复用现有 NumPy/Torch 代码&#xff0c…...