【Java】零基础蓝桥杯算法学习——线性动态规划(一维dp)

线性dp------一维动态规划

1、考虑最后一步可以由哪些状态得到,推出转移方程

2、考虑当前状态与哪些参数有关系,定义几维数组来表示当前状态

3、计算时间复杂度,判断是否需要进行优化。

一维动态规划例题:最大上升子序列问题

Java参考代码:

java 复制代码
import java.util.Scanner;

public class Main {
    public static void main(String[] args)  {
       Scanner scan = new Scanner(System.in);
       int n = scan.nextInt();
       int[] a = new int[n];
       for(int i=0;i<n;i++) {
    	   a[i]=scan.nextInt();
       }
       int[] dp = new int[n];
       dp[0]=1;
       int max=1;
       for(int i=1;i<n;i++) {
    	   dp[i]=1;
    	   for(int j=0;j<i;j++) {
    		   if(a[i]>a[j]) {
    			   dp[i]=Math.max(dp[i], dp[j]+1);
    		   }
    	   }
    	   max = Math.max(dp[i], max);
       }
       System.out.println(max);
       scan.close();
    }
}
相关推荐
汀、人工智能6 分钟前
[特殊字符] 第100课:任务调度器
数据结构·算法·数据库架构·贪心··任务调度器
m0_719084116 分钟前
天机学堂aaaa
java
每日任务(希望进OD版)8 分钟前
二分法刷题
算法·二分
孙鹏宇.13 分钟前
左值右值.
java·开发语言
才知道的14 分钟前
stm32F407学习DAY.27 ADC
stm32·嵌入式硬件·学习
XDHCOM16 分钟前
Redis节点故障自动恢复机制详解,如何快速抢救故障节点,确保数据不丢失?
java·数据库·redis
风吹迎面入袖凉18 分钟前
【Redis】Redisson分布式锁原理
java·服务器·开发语言
QCzblack19 分钟前
BugKu BUUCTF ——Reverse
java·前端·数据库
Orange_sparkle22 分钟前
learn claude code学习记录-S02
java·python·学习
李白你好24 分钟前
Java GUI-未授权漏洞检测工具
java·开发语言