【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();
    }
}
相关推荐
得一录12 小时前
星图·全参数调试qwen3.1-B
深度学习·算法·aigc
yyjtx12 小时前
DHU上机打卡D22
算法
plus4s12 小时前
2月14日(76-78题)
c++·算法·图论
pzx_00113 小时前
【论文阅读】Attention Is All You Need
论文阅读·算法
-To be number.wan13 小时前
算法学习日记 |贪心算法
c++·学习·算法·贪心算法
叙白冲冲13 小时前
JAVA中栈的使用
java·开发语言
知识分享小能手13 小时前
SQL Server 2019入门学习教程,从入门到精通,SQL Server 2019 规则、默认值和完整性约束 —— 语法详解与实战案例(11)
sql·学习·sqlserver
sanshizhang13 小时前
jspringboot 调用腾讯短信
java·短信验证码
Tong Z13 小时前
Spring Boot 请求处理链路
java·spring boot·后端
rabbitlzx13 小时前
《Async in C# 5.0》第十四章 深入探讨编译器对于async的转换
java·开发语言·c#·异步·asynchronous