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

力扣刷题376. 摆动序列

376. 摆动序列 - 力扣(LeetCode)

定义两个动态规划数组,一个记录上升的dp,一个记录下降的dp

如果后一位数大于前一位数,则有

dpUp[i] = dpDown[i - 1] + 1;
dpDown[i] = dpDown[i - 1];

如果后一位数小于前一位数,则有

dpUp[i] = dpUp[i - 1] ;
dpDown[i] = dpUp[i - 1]+ 1;

如果相等,则dp[i] = dp[i-1]

package LeetCode;

public class Q376 {
    public static void main(String[] args) {
        int[] nums = {1, 7, 4, 9, 2, 5};
        System.out.println(wiggleMaxLength(nums));

    }

    public static int wiggleMaxLength(int[] nums) {
        int[] dpUp = new int[nums.length];
        int[] dpDown = new int[nums.length];

        dpUp[0] = 1;
        dpDown[0] = 1;
        for (int i = 1; i < nums.length; i++) {
            if (nums[i] - nums[i - 1] == 0) {
                dpUp[i] = dpUp[i - 1];
                dpDown[i] = dpDown[i - 1];
            } else if (nums[i] - nums[i - 1] > 0) {
                dpUp[i] = dpDown[i - 1] + 1;
                dpDown[i] = dpDown[i - 1];
            } else {
                dpUp[i] = dpUp[i - 1] ;
                dpDown[i] = dpUp[i - 1]+ 1;
            }
        }
        return Math.max(dpUp[dpUp.length-1],dpDown[dpDown.length-1]);
    }
}

相关文章:

  • ZYNQ14 基于正点原子的iic时序的fpga程序实现
  • 数据结构(python)-------栈和队列2
  • 使用OpenCV进行图像处理:边界填充、阈值处理
  • Java 中 PriorityQueue 的底层数据结构及相关分析
  • 第60天:Web攻防-XSS跨站文件类型功能逻辑SVGPDFSWFPMessageLocalStorage
  • Ubuntu AX200 iwlwifi-cc-46.3cfab8da.0.tgz无法下载的解决办法
  • Hadoop 3.x中的zookeeper和JournalNode的作用
  • 使用vue3和vue-router实现动态添加和删除cachedViews数组
  • 提取关键 CSS: react 的项目中如何使用criticalCSS
  • PCRE2 站内搜索引擎项目
  • Windows 系统安装 Python3.7 、3.8、3.9、3.10、 3.11 最新版,附带相应程序。
  • 微信小程序面试内容整理-请求优化
  • 广东省教育服务公司受邀出席中华文化促进会教育示范基地落成典礼
  • 软考系统架构设计师考试学习和考试的知识点大纲,覆盖所有考试考点
  • Linux系统——crontab定时任务
  • 【Linux】——进程状态僵尸进程孤儿进程
  • Spring 如何创建 Bean 实例的?
  • SAP FAGLL03 追加并显示描述字段
  • 【C++图论 分支界限法】1786. 从第一个节点出发到最后一个节点的受限路径数|2078
  • 鸿蒙NEXT开发实战教程—小红书app
  • 图片制作动图/南昌seo全网营销
  • 行业门户网站建站/seo排名推广
  • 最先进的深圳网站建设/汽车网络营销的方式有哪些
  • 用ppt做网站方法/广告公司简介
  • cms网站访问人数/seo站长助手
  • 做普工招聘网站/安卓手机优化软件哪个好