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

算法题:摆动序列

这道题是一道贪心算法题,如果前两个数是递增,则后面要递减,如果不符合则往后遍历,直到找到符合的。(完整题目附在了最后)

代码如下:

class Solution(object):def wiggleMaxLength(self, nums):n = len(nums)if n < 2:return nprevdiff = nums[1] - nums[0]if prevdiff == 0:n_subseq = 1else:n_subseq = 2for i in range(2, n):diff = nums[i] - nums[i - 1]if (prevdiff >= 0 and diff < 0) or (prevdiff <= 0 and diff > 0):prevdiff = diffn_subseq += 1return n_subseq

完整题目:

376. 摆动序列

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

  • 例如, [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

提示:

  • 1 <= nums.length <= 1000
  • 0 <= nums[i] <= 1000

相关文章:

算法题:摆动序列

这道题是一道贪心算法题&#xff0c;如果前两个数是递增&#xff0c;则后面要递减&#xff0c;如果不符合则往后遍历&#xff0c;直到找到符合的。&#xff08;完整题目附在了最后&#xff09; 代码如下&#xff1a; class Solution(object):def wiggleMaxLength(self, nums):…...

复习 --- QT服务器客户端

服务器&#xff1a; 头文件&#xff1a; #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include<QTcpServer> #include<QTcpSocket> #include<QMessageBox> #include<QDebug> #include<QList> #include<QListWidget> #in…...

Godot 官方2D游戏笔记(1):导入动画资源和添加节点

前言 Godot 官方给了我们2D游戏和3D游戏的案例&#xff0c;不过如果是独立开发者只用考虑2D游戏就可以了&#xff0c;因为2D游戏纯粹&#xff0c;我们只需要关注游戏的玩法即可。2D游戏的美术素材简单&#xff0c;交互逻辑简单&#xff0c;我们可以把更多的时间放在游戏的玩法…...

leetcode 热题 100

数组和字符串匹配 子串和子序列 原串&#xff1a;“abcabc” 子串&#xff1a;“abc”, 连续但不大于原串的字符串 子序列&#xff1a;“acc”, 字符来自原串且保持在原串中顺序不变的字符串 子排列&#xff1a; “aabbcc”, 字符来自原串且只能用1次,但可有不同排列顺序的字…...

Ae 效果:CC Lens

扭曲/CC Lens Distort/CC Lens CC Lens &#xff08;CC 镜头&#xff09;主要用于添加或移除摄像机镜头扭曲&#xff0c;比如桶形失真 Barrel、枕形失真 Pincushion以及鱼眼失真 Fisheye等。或者&#xff0c;用它来创建一些特殊的动画效果。 ◆ ◆ ◆ 效果属性说明 Center 中…...

【Redis】基础数据结构-quicklist

Redis List 在Redis3.2版之前&#xff0c;Redis使用压缩列表和双向链表作为List的底层实现。当元素个数比较少并且元素长度比较小时&#xff0c;Redis使用压缩列表实现&#xff0c;否则Redis使用双向链表实现。 ziplist存在问题 不能保存过多的元素&#xff0c;否则查找复杂度…...

QT 实现服务器客户端搭建

1. 服务器头文件 #ifndef SER_H #define SER_H#include <QWidget> #include<QTcpServer> //服务器头文件 #include<QTcpSocket> //客户端头文件 #include<QMessageBox> //消息对话框 #include<QList> //链表头文件QT_BEGIN_NAM…...

Javascript - 轮播图

轮播图也称banner图、广告图、焦点图、滑片。是指在一个模块或者窗口,通过鼠标点击或手指滑动后,可以看到多张图片。这些图片统称为轮播图,这个模块叫做轮播模块。可以通过运用 javascript去实现定时自动转换图片。以下通过一个小Demo演示如何运用Javascript实现。 <!DOCTYP…...

MATLAB中syms函数使用

目录 语法 说明 示例 创建符号标量变量 创建符号标量变量的向量 创建符号标量变量矩阵 管理符号标量变量的假设 创建和评估符号函数 syms函数的作用是创建符号标量和函数&#xff0c;以及矩阵变量和函数。 语法 syms var1 ... varN syms var1 ... varN [n1 ... nM] …...

竞赛选题 深度学习 opencv python 实现中国交通标志识别_1

文章目录 0 前言1 yolov5实现中国交通标志检测2.算法原理2.1 算法简介2.2网络架构2.3 关键代码 3 数据集处理3.1 VOC格式介绍3.2 将中国交通标志检测数据集CCTSDB数据转换成VOC数据格式3.3 手动标注数据集 4 模型训练5 实现效果5.1 视频效果 6 最后 0 前言 &#x1f525; 优质…...

Qt 关于mouseTracking鼠标追踪和tabletTracking平板追踪的几点官方说明

mouseTracking属性用于保存是否启用鼠标跟踪&#xff0c;缺省情况是不启用的。 没启用的情况下&#xff0c;对应部件只接收在鼠标移动同时至少一个鼠标按键按下时的鼠标移动事件。 启用鼠标跟踪的情况下&#xff0c;任何鼠标移动事件部件都会接收。 部件方法hasMouseTrackin…...

基于springboot的论坛网站

目录 前言 一、技术栈 二、系统功能介绍 用户信息管理 普通管理员管理 交流论坛 交流论坛评论 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了…...

分库分表理论总结

一、概述 分库分表是在面对高并发、海量数量时常见的数据库层面的解决方案。通过把数据分散到不同的数据库中&#xff0c;使得单一数据库的数据量变小来缓解单一数据库的性能问题&#xff0c;从而达到提升数据库性能的目的。比如&#xff1a;将电商数据库拆分为若干独立的数据…...

RK3568平台开发系列讲解(外设篇)AP3216C 三合一环境传感器驱动

🚀返回专栏总目录 文章目录 一、AP3216C 简介二、AP3216C驱动程序2.1、设备树修改2.2、驱动程序沉淀、分享、成长,让自己和他人都能有所收获!😄 📢在本篇将介绍AP3216C 三合一环境传感器的驱动。 一、AP3216C 简介 AP3216C 是由敦南科技推出的一款传感器,其支持环境光…...

ES 关于 remote_cluster 的一记小坑

最近有小伙伴找到我们说 Kibana 上添加不了 Remote Cluster&#xff0c;填完信息点 Save 直接跳回原界面了。具体页面&#xff0c;就和没添加前一样。 我们和小伙伴虽然隔着网线但还是进行了深入、详细的交流&#xff0c;梳理出来了如下信息&#xff1a; 两个集群&#xff1a;…...

第五章:最新版零基础学习 PYTHON 教程—Python 字符串操作指南(第四节 - Python 中的字符串反转6种不同的方式方法)

Python 字符串库不支持内置的“ reverse() ”,就像其他 python 容器(如 list)所做的那样,因此了解其他反转字符串的方法可能会很有用。本文讨论了在Python中实现它的几种方法。 目录 Python 中使用循环反转字符串 在Python中使用递归反转字符串...

el-date-picker增加默认值 修改样式

预期效果 默认是这样的 但希望是直接有一个默认的当天日期&#xff0c;并且字体颜色啥的样式也要修改&#xff08;在这里假设今天是2023/10/6 功能实现 踩了坑挺多坑的&#xff0c;特此记录 官方文档 按照官方的说明&#xff0c;给v-model绑定一个字符串就可以了 在j…...

Hive中生成自增序列的常用方法

在日常业务开发过程中&#xff0c;通常遇到需要hive数据表中生成一列唯一ID&#xff0c;当然连续递增的更好。 最近在结算业务中&#xff0c;需要在hive表中生成一列连续且唯一的账单ID&#xff0c;于是就了解生成唯一ID的方法 1. 利用row_number函数 语法&#xff1a;row_n…...

4.MySql安装配置(更新版)

MySql安装配置 无论计算机是否有安装其他mysql&#xff0c;都不要卸载。 只要确定大版本是8即可&#xff0c;8.0.33 8.0.34 差别不大即可。 MySql下载安装适合电脑配置属性有关&#xff0c;一次性安装成功当然是非常好的&#xff0c;因为卸载步骤是非常麻烦的 如果第一次安装…...

使用opencv及FFmpeg编辑视频

使用opencv及FFmpeg编辑视频 1.融合两个视频2.为视频添加声音2.1 安装ffmpy Python包2.2 下载ffmpeg2.3 代码实现 3.效果参考文献 帮朋友做了一个小作业&#xff0c;具体实现分为几个过程&#xff1a; 将两个mp4格式视频融合到一起为新视频添加声音 1.融合两个视频 其中一个…...

Python3 Selenium4 chromedriver Pycharm闪退的问题

Python3版本&#xff1a;3.11.5 Pycharm版本&#xff1a;2023.2.1 Chrome版本&#xff1a;117.0.5938.150&#xff08;正式版本&#xff09; 在使用最新版的Selenium4版本时&#xff0c;chromedriver可以驱动Chrome但是闪退&#xff0c;Selenium目前最新版本是4.13.0&#…...

019 基于Spring Boot的教务管理系统、学生管理系统、课表查询系统

基于Spring Boot的教务管理系统、学生管理系统、课表查询系统 一、系统介绍 本作品主要实现了一个课表查询系统&#xff0c;采用了SSM&#xff08;Spring SpringMVC MyBatis&#xff09;的基础架构。 二、使用技术 spring-bootspring-MVCthymeleafmybatis-plusdruidLombo…...

包装类?为什么需要包装类?

包装类是一种用于将基本数据类型(如整数、浮点数、字符等)封装成对象的类。在Java和许多其他编程语言中,基本数据类型是不具备面向对象特性的,它们不是对象,不能进行方法调用或参与泛型化。为了弥补这一不足,Java引入了包装类,允许基本数据类型被当作对象来处理。 Java…...

Java中的TCP通信(网络编程 二)

简介 TCP&#xff08;传输控制协议&#xff09;是一种在计算机网络中常用的协议&#xff0c;它提供了可靠的、面向连接的通信&#xff08;协议信息链接&#xff1a;TCP协议&#xff09;。在Java中&#xff0c;我们可以使用Socket和ServerSocket类来实现TCP通信。 Java TCP通信…...

[架构之路-232]:目标系统 - 纵向分层 - 操作系统 - 数据存储:文件系统存储方法汇总

目录 前言&#xff1a; 一、文件系统存储方法基本原理和常见应用案例&#xff1a; 二、Windows FAT文件系统 2.1 概述 三、Linux EXT文件系统 3.1 基本原理 3.2 索引节点表&#xff08;Inode Table&#xff09; 3.2.1 索引节点表层次结构 3.2.2 间接索引表的大小和表项…...

【立体视觉(五)】之立体匹配与SGM算法

【立体视觉&#xff08;五&#xff09;】之立体匹配与SGM算法 一、立体匹配一&#xff09;基本步骤二&#xff09;局部立体匹配三&#xff09;全局立体匹配四&#xff09;评价标准1. 均方误差(RMS)2. 错误匹配率百分比(PBM) 二、半全局(SGM)立体匹配一&#xff09;代价计算二&a…...

苹果系统_安装matplotlib__pygame,以pycharm导入模块

为了更便捷、连贯的进行python编程学习&#xff0c;尽量在开始安装python软件时&#xff0c;将编辑器、模块一并安装好&#xff0c;这样能避免以后版本冲突的问题。小白在开始安装pycharm、pip、matplotlib往往会遇到一些问题&#xff0c;文中列示其中部分bug&#xff0c;供大家…...

常用颜色的英文和十六进制

以下颜色都是按照下面格式所写 # size&#xff1a;文字大小&#xff08;1~7&#xff09;&#xff1b;color&#xff1a;文字颜色 <font size5 colorred>红 red #ff0000</font>红 red #ff0000 橙 orange #ffa500 黄 yellow #ffff00 草绿 springgreen #00FF7F 绿…...

计算机网络第二章思考题

1. 调制与编码分别有何作用&#xff1f; 调制&#xff08;Modulation&#xff09;和编码&#xff08;Coding&#xff09;是通信系统中的两个关键概念&#xff0c;它们分别具有不同的作用和功能&#xff1a; 调制&#xff08;Modulation&#xff09;&#xff1a; 作用&#xff…...

Xcode、终端、Mason、nvim.debug环境路径

Xcode&#xff1a; /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include 终端&#xff1a; /Library/Developer/CommandLineTools/usr/include Mason: /Users/donny/.local/share/nvim/mason/packages/clangd/…...

有没有做市场评估的网站/东莞网站推广宣传

printf函数称为格式输出函数&#xff0c;其关键字最末一个字母f即为“格式”(format)之意。其功能是按用户指定的格式&#xff0c;把指定的数据显示到显示器屏幕上。在前面的例题中我们已多次使用过这个函数。 printf函数调用的一般形式 printf函数是一个标准库函数&#xff…...

我想建个网站怎么建/seo1现在怎么看不了

首先说说\n,\r,\t\n 软回车&#xff1a;在Windows 中表示换行且回到下一行的最开始位置在Linux、unix 中只表示换行&#xff0c;但不会回到下一行的开始位置。\r 软空格&#xff1a;在Linux、unix 中表示返回到当行的最开始位置。在Mac OS 中表示换行且返回到下一行的最开始位置…...

潍坊 网站企划/嘉兴seo网络推广

Java系统设计规约是最后一部分内容&#xff0c;其实也是顶层设计的概念&#xff0c;所以本篇Blog重点讨论分为需求分析阶段和系统设计阶段&#xff0c;对项目开展之初的设计和认知有个清晰的轮廓&#xff0c;红色加粗字体为自己可能会犯的错误以及不规范的地方&#xff0c;蓝色…...

有用dojo做的网站吗/东莞网站建设最牛

语音内容&#xff1a;大家好&#xff0c;我是时间财富网智能客服时间君&#xff0c;上述问题将由我为大家进行解答。把d盘的东西移到e盘直接用鼠标右键剪切复制就可以了&#xff0c;在d盘剪切&#xff0c;到e盘复制即可。如果担心文件丢失&#xff0c;也可以先复制&#xff0c;…...

大潮建设集团有限公司 网站/如何点击优化神马关键词排名

关于计算机网络实验的心得体会计算机网络课程的实验不同于以前做过的C语言上机实验和数据结构上机实验&#xff0c;后两者都是编程的&#xff0c;要求的是个人对基础知识的掌握和熟练的应用&#xff0c;简单地说就是一个人的战场。而计算机网络课程则是一门操作性很强的课程&am…...

上海做网站建设公司/网站运营指标

Docker容器 开机自启动命令 &#xff1a; docker update --restart unless-stopped $(docker ps -q)Docker 容器内服务开机自启动 添加命令&#xff1a; vi /etc/crontab 注释&#xff1a;设置计划任务SHELL/bin/bash PATH/sbin:/bin:/usr/sbin:/usr/bin MAILTOroot# For det…...