[Leetcode 376]摇摆序列 Wiggle Subsequence
【题目】
A sequence of numbers is called a wiggle sequence if the differences between successive numbers strictly alternate between positive and negative. The first difference (if one exists) may be either positive or negative. A sequence with fewer than two elements is trivially a wiggle sequence.
For example, [1,7,4,9,2,5]
is a wiggle sequence because the differences (6,-3,5,-7,3)
are alternately positive and negative. In contrast, [1,4,7,2,5]
and [1,7,4,5,5]
are not wiggle sequences, the first because its first two differences are positive and the second because its last difference is zero.
Given a sequence of integers, return the length of the longest subsequence that is a wiggle sequence. A subsequence is obtained by deleting some number of elements (eventually, also zero) from the original sequence, leaving the remaining elements in their original order.
【思路】
DP/贪心都可以,贪心更简单。
核心比较A[i+2]-A[i+1]和A[i+1]-A[i]是否异号,是则cnt++,否则i++循环。
两个指针和一个循环,特殊情况只有两个元素的数组单独讨论。
才发现可以插入代码!!好看多了……!
【代码】
class Solution {public int wiggleMaxLength(int[] nums) {if (nums.length<2)return nums.length;int p1=nums[1]-nums[0];int cnt=p1!=0?2:1;for(int i=2;i<nums.length;i++){int p2=nums[i]-nums[i-1];if((p1<=0&&p2>0)||(p1>=0&&p2<0)){p1=p2;cnt++;}}return cnt;} }
【举例】
Example 1:
Input: [1,7,4,9,2,5] Output: 6 Explanation: The entire sequence is a wiggle sequence.
Example 2:
Input: [1,17,5,10,13,15,10,5,16,8] Output: 7 Explanation: There are several subsequences that achieve this length. One is [1,17,10,13,10,16,8].
Example 3:
Input: [1,2,3,4,5,6,7,8,9] Output: 2
转载于:https://www.cnblogs.com/inku/p/9935839.html
[Leetcode 376]摇摆序列 Wiggle Subsequence相关推荐
- leetcode - 376. 摆动序列
376. 摆动序列 -------------------------------------------- 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在 ...
- LeetCode 376. 摆动序列 中等难度
376. 摆动序列 题目: 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个元素的序列也是摆动序列. 例如: [1,7,4,9 ...
- LeetCode 376. 摆动序列(贪心 动态规划)
文章目录 1. 题目 2. 解题 2.1 贪心 2.2 动态规划 1. 题目 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个 ...
- Leetcode 376. 摆动序列 解题思路及C++实现
解题思路: 使用贪心算法的思想. 在例子 [1,17,5,10,13,15,10,5,16,8]中,[1, 17].[17, 5]这前面的两个序列就直接都选择了,没有问题,对于后面[5, 10, 13 ...
- leetcode 376. 摆动序列 思考分析
目录 题目 思路分析 代码 总结 题目 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个元素的序列也是摆动序列. 例如, [1 ...
- leetcode 376. 摆动序列(dp)
如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个元素的序列也是摆动序列. 例如, [1,7,4,9,2,5] 是一个摆动序列, ...
- [leetcode]376. 摆动序列
原文:https://leetcode-cn.com/problems/wiggle-subsequence/solution/bai-dong-xu-lie-by-leetcode/ 给定一个整数序 ...
- 贪心:Wiggle Subsequence 摇摆序列
一个整数序列,如果两个相邻元素的差恰好正负(负正)交替出现,则该序列被称为 摇摆序列.一个小于2个元素的序列直接为摇摆序列.给一个随机序列,求这个序列满足摇摆序列定义的最长子序列的长度: 输入[1,1 ...
- 376 Wiggle Subsequence 贪心解法以及证明
376. Wiggle Subsequence 题目理解 给定一个数组,相邻两个数计算差值.差值排成的序列是正负相间的,那这个数组就是一个wiggle 数组.例如数组[1,7,4,9,2,5],差值序 ...
最新文章
- android系统release签名
- Puppet dashboard安装
- 提示JS错误:WebForm_PostBackOptions 未定义
- 循环自相关函数和谱相关密度(三)——实信号、复信号模型下的BPSK信号循环谱MATLAB仿真结果及代码
- html列表按时间排序代码_按字母顺序排序的列表
- caffe SigmoidCrossEntropyLossLayer
- 第三篇: UpdatePanel 控件示例
- MyEclipse:新导入一个项目时中文乱码
- 【React】JSX
- 孙鑫VC学习笔记:第八讲 逃跑按钮的巧妙实现和MFC中指针的获取
- BScroll warn 】EventEmitter has used unknown event type: “pullingUp“解决方法:看bs文档
- Unity如何免费持续获取卫星云图、雷达云图等天气数据图片,制作动态天气应用
- linux中ping命令停不下来解决方案
- k8s - service
- 台达变频器vfb—d参数表_台达DPS
- kafka connector 使用总结以及自定义connector开发
- 国内银行应用软件项目外包模式探讨
- android原生输入法皮肤,天了噜搜狗输入法安卓版皮肤竟然会说话
- 带反义词的成语-含有反义词的成语
- 关于facebook登录出现的问题
热门文章
- 【机器视觉学习笔记】双线性插值实现图片任意角度旋转(C++)
- slf4j的简单用法以及与log4j的区别
- Boost - 序列化 (Serialization)
- python下设置urllib连接超时
- [react-router] React-Router 3和React-Router 4有什么变化?添加了什么好的特性?
- 前端学习(3041):vue+element今日头条管理-控制用户的访问权限
- [html] 如果一个标签元素同时出现两个class属性,两个class都会生效吗?为什么?
- [html] html标签中的lang属性有什么作用?
- [vue] 说说你对vue的错误处理的了解?
- 前端学习(2811):小程序学习之学习目录