From f6be40f9d78e1fd46a18d78c3d9ccb9edd61dbe1 Mon Sep 17 00:00:00 2001 From: mengyuan Date: Mon, 20 Dec 2021 19:44:54 +0800 Subject: [PATCH] =?UTF-8?q?update:=200376.=E6=91=86=E5=8A=A8=E5=BA=8F?= =?UTF-8?q?=E5=88=97=20js=E5=8A=A8=E6=80=81=E8=A7=84=E5=88=92=E8=A7=A3?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/0376.摆动序列.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/problems/0376.摆动序列.md b/problems/0376.摆动序列.md index 3432ca53..b7293635 100644 --- a/problems/0376.摆动序列.md +++ b/problems/0376.摆动序列.md @@ -261,6 +261,7 @@ func wiggleMaxLength(nums []int) int { ``` ### Javascript +**贪心** ```Javascript var wiggleMaxLength = function(nums) { if(nums.length <= 1) return nums.length @@ -277,6 +278,25 @@ var wiggleMaxLength = function(nums) { return result }; ``` +**动态规划** +```Javascript +var wiggleMaxLength = function(nums) { + if (nums.length === 1) return 1; + // 考虑前i个数,当第i个值作为峰谷时的情况(则第i-1是峰顶) + let down = 1; + // 考虑前i个数,当第i个值作为峰顶时的情况(则第i-1是峰谷) + let up = 1; + for (let i = 1; i < nums.length; i++) { + if (nums[i] < nums[i - 1]) { + down = Math.max(up + 1, down); + } + if (nums[i] > nums[i - 1]) { + up = Math.max(down + 1, up) + } + } + return Math.max(down, up); +}; +``` -----------------------