# 0376. Wiggle Subsequence ###### tags: `Leetcode` `Medium` `Dynamic Programming` Link: https://leetcode.com/problems/wiggle-subsequence/ ## 思路  设计两个变量 分别表示以当前元素结尾上升/下降的最长wiggle pattern 对于新的元素```nums[i]```来说 如果```nums[i-1]>nums[i]``` 说明我们可以更新decrease的长度变成increase+1 但是为什么increase的长度是保持不变的呢 因为我们可以把末尾元素由```nums[i-1]```变成```nums[i]``` 如果```nums[i-1]>nums[i]``` 则同理 ## Code ```java= class Solution { public int wiggleMaxLength(int[] nums) { int increase = 1, decrease = 1; for(int i=1; i<nums.length; i++){ if(nums[i]>nums[i-1]) decrease = increase+1; else if(nums[i]<nums[i-1]) increase = decrease+1; } return Math.max(increase, decrease); } } } ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up