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

代码随想录 Q85.摆动序列

方法一:贪心解法。

1.题目要求:从原始序列中删除一些(也可以不删除)元素来获得子序列,剩下的元素保持其原始顺序。

2.以示例2为例:如下图所示,局部最优能推出全局最优,并且举不出反例,可以试试贪心。

(1)局部最优:删除单调坡度上的节点(不包括单调坡度两端的节点),那么这个坡度就可以有两个局部峰值。

(2)全局最优:整个序列有最多的局部峰值,从而达到最长摆动序列。

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

4.贪心思路:让峰值尽可能保持峰值,然后删除单一坡度上的节点。在计算是否有峰值的时候,已知遍历的下标i,计算prediff(nums[i] - nums[i - 1])和curdiff(nums[i + 1] - nums[i]),如果prediff < 0 && curdiff > 0或者prediff > 0 && curdiff < 0此时就有波动需要统计。

5.本题需要考虑三种情况:上下坡中有平坡、数组首尾两端和单调坡中有平坡。

(1)情况一:上下坡中有平坡。例如[1,2,2,2,2,1]这样的数组,如下图所示,它的摇摆序列长度为3,也就是说在删除的时候,要么删除左边的三个2,要么删除右边的三个2。

<

http://www.dtcms.com/a/590152.html

相关文章:

  • ESP32连接ThingsCloud上传设备数据(智慧小灯)
  • 网站设计公司圣辉友联一级a做爰片免费网站性恔
  • 【基于one-loop-per-thread的高并发服务器】--- Server模块
  • 免费网站推广网站在线怎么做网页啊
  • 泰安手机网站建设做校园文化的网站
  • 自助建站网站程序源码dw做网站弊端
  • 新城区网站建设做网站.服务器怎么买
  • 【教学类-98-01】20251109“兔子头像”(小班主题《小兔乖乖》)
  • 上海电子门户网站建设数据怎么用editplus做网站
  • iBiz开源:iBizPLM BOM插件来了
  • 8.游戏逆向-pxxx-获取GObject
  • 建立网站 数据分析网站怎么做动效
  • 什么软件做网站链接安宁市建设厅网站
  • 4.1.8【2016统考真题】
  • 第三章:处理机调度与死锁
  • 德州做网站公司电话谷歌系平台推广
  • 【01】Canny边缘检测:原理、实现与性能对比
  • 41. CMake
  • 11.string(上)
  • 【开题答辩全过程】以 基于SpringBoot的智慧教育系统的设计与实现为例,包含答辩的问题和答案
  • 360永久免费建网站网站建设及空间
  • 轻松阅读漫画的利器——Kotatsu漫画阅读器
  • 婚纱外贸网站怎么用PS做珠宝网站
  • 新乡网站网站建设网页制作软件是什么
  • C#权威指南第9课:方法
  • fastjson中的原生反序列化漏洞
  • 网站弹屏广告怎么做的如何修改网站后台的用户名和密码
  • Spring中如何使用@Resource注解?
  • 高频面试八股文用法篇(十二)Java 包装类缓存机制
  • 【Envi遥感图像处理】019:影像自动配准操作