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

Leetcode 376 摆动序列

题意理解

        如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 

        如果是摆动序列,前后差值呈正负交替出现

        为保证摆动序列尽可能的长,我们可以尽可能的保留峰值,,删除上下坡的中间值,或平坡值。

解题思路

        已知要删除一些值来保证摆动序列的话,应该保留峰值,删除上下坡、平坡的值。

        并且摆动序列两数差值正负交替出现。

        所以我们需要一个值preDiff来记录前一个数和当前数的差值。

        还需要一个指向当前值,和后一个值得指针,来计算两数差值,看两者是否正负交替出现。

1.贪心解题

       为实现该算法解题,我们需要定义cur和after得指针,来记录当前差值

        需要定义preDiff来记录前一个差值,判断当前值是否是峰值,保留峰值,删除坡值。

        这里的删除并不是真正的删除,指示不记录此处的result++

        result来记录正负值变化次数n,指示序列应为n+1

 public int wiggleMaxLength(int[] nums) {int result=0;int preDiff=0;for(int i=0;i<nums.length-1;i++){if((preDiff>=0&&nums[i+1]-nums[i]<0)||(preDiff<=0&&nums[i+1]-nums[i]>0)){result++;//只记录有正负性的preDiffpreDiff=nums[i+1]-nums[i];}}//result记录了中间值正负变化的次数n,指示n+1个数的序列,有n个中间值return result+1;}

2.分析

时间复杂度:O(n)

空间复杂度:O(n)

相关文章:

  • 计算机论文写作助手
  • 隐私计算介绍
  • 5G边缘网关如何助力打造隧道巡检机器人
  • luttuce(RedisTempate)实现hash(动态数据) expire lua脚本
  • Lvs-NAT部署
  • 论文阅读——Painter
  • ReactHooks大全—useEffect
  • MPC - Python、MATLAB、CVXPY、YALMIP、Julia 示例
  • 产品调研——AI平台
  • MetaAI语音翻译大模型Seamless登场,主打AI无缝同声传译
  • 构建平战结合的融合通信指挥调度系统平台
  • 【密码学】群的证明(习题)
  • 很抱歉,Midjourney,但Leonardo AI的图像指导暂时还无人能及…至少目前是这样
  • 结构体基础例题
  • 【超图】SuperMap iClient3D for WebGL/WebGPU —— 单体gltf模型与Blender中的方向对应关系
  • 345-反转字符串中的元音字母
  • Angular4 模板式表单用法以及验证
  • Debian下无root权限使用Python访问Oracle
  • eclipse(luna)创建web工程
  • github指令
  • JAVA_NIO系列——Channel和Buffer详解
  • react-native 安卓真机环境搭建
  • vue 个人积累(使用工具,组件)
  • webpack项目中使用grunt监听文件变动自动打包编译
  • web标准化(下)
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 驱动程序原理
  • 深度学习中的信息论知识详解
  • 详解NodeJs流之一
  • Android开发者必备:推荐一款助力开发的开源APP
  • Nginx实现动静分离
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • #define,static,const,三种常量的区别
  • #pragma once
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • (10)ATF MMU转换表
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (Forward) Music Player: From UI Proposal to Code
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (转)shell调试方法
  • (转)使用VMware vSphere标准交换机设置网络连接
  • (转载)Google Chrome调试JS
  • **PHP分步表单提交思路(分页表单提交)
  • *Django中的Ajax 纯js的书写样式1
  • 、写入Shellcode到注册表上线
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET Micro Framework初体验(二)