当前位置: 首页 > 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;}
};

http://www.lryc.cn/news/318443.html

相关文章:

  • Unload-labs
  • SRS-220VDC-4Z-10A静态中间继电器 额定电压DC220V 四副转换触点 JOSEF约瑟
  • 解决electron打包vue-element-admin项目页面无法跳转的问题
  • Uniapp Vue2 image src动态绑定static目录下的图片
  • 【UE5】动画混合空间的基本用法
  • 用红黑树封装实现map和set
  • 【阿里云系列】-部署ACK集群的POD应用日志如何集成到日志服务(SLS)中
  • Vue中给当前页面传递参数并重新加载,vue使用this.$router.push跳转页面,给跳转过去的页面传参不一致时重新加载
  • 【扩散模型(一)】综述:扩散模型在文本生成领域应用
  • K8S Pod
  • 反向传播(backward propagation,BP) python实现
  • 简单算命脚本
  • Lua-掌握Lua语言基础1
  • python-0003-pycharm开发虚拟环境中的项目
  • 修改 MySQL update_time 默认值的坑
  • 基于亚马逊云EC2+Docker搭建nextcloud私有化云盘
  • 用try...catch进行判断
  • 服务器遭遇挖矿病毒syst3md及其伪装者rcu-sched:原因、症状与解决方案
  • 此机非彼机,工业计算机在工业行业的特殊地位
  • Python使用lxml解析XML格式化数据
  • CDA-LevelⅡ【考题整理-带答案】
  • 20240304 json可以包含复杂数组(数组里面套数组)
  • 算法50:动态规划专练(力扣514题:自由之路-----4种写法)
  • 重学SpringBoot3-集成Thymeleaf
  • 【数据可视化】Echarts最常用图表
  • flink:通过table api把文件中读取的数据写入MySQL
  • 【Java 多线程 哈希表】 HashTable, HashMap, ConcurrentHashMap 之间的区别
  • 有趣之matlab-烟花
  • C语言指针与数组(不适合初学者版):一篇文章带你深入了解指针与数组!
  • springboot Mongo大数据查询优化方案