1. 程式人生 > >最長下降子序列

最長下降子序列

題目描述:

 

程式碼實現:

 1 import java.util.Scanner;
 2  
 3 public class Main {
 4  
 5     public static void main(String[] args) {
 6         Scanner s = new Scanner(System.in);
 7         String string=s.nextLine();
 8         String[] strs=string.split(" ");
 9         int len=strs.length;
10 Integer[] a = new Integer[len]; 11 int[] dp = new int[len]; 12 for(int i=0;i<len;i++) { 13 a[i]=Integer.parseInt(strs[i]); 14 } 15 //dp[i]表示從第0顆導彈開始,到第i顆導彈之間,最長下降子序列長度是多少 16 int n=len, j; 17 int max = 0; 18 for (int i = 0; i < n; i++) {
19 dp[i]=1; 20 for (j = 0; j < i; j++) { 21 if (a[i] <= a[j]) 22 dp[i] = Math.max(dp[i], dp[j] + 1); 23 max = Math.max(max, dp[i]); 24 } 25 } 26 System.out.println(max); 27 s.close();
28 } 29 }