1. 程式人生 > >最長連續遞增子序列(java)

最長連續遞增子序列(java)

給定一個順序儲存的線性表,請設計一個演算法查詢該線性表中最長的連續遞增子序列。例如,(1,9,2,5,7,3,4,6,8,0)中最長的遞增子序列為(3,4,6,8)。

輸入格式:

輸入第1行給出正整數n(≤10​5​​);第2行給出n個整數,其間以空格分隔。

輸出格式:

在一行中輸出第一次出現的最長連續遞增子序列,數字之間用空格分隔,序列結尾不能有多餘空格。

輸入樣例:

15
1 9 2 5 7 3 4 6 8 0 11 15 17 17 10

輸出樣例:

3 4 6 8

import java.util.Scanner;

public class Test48 {          public static void main(String[] args) {         // TODO Auto-generated method stub         Scanner sc = new Scanner(System.in);         int n=sc.nextInt();         int[] res=new int[n];         for(int i=0;i<n;i++)             res[i]=sc.nextInt();         System.out.println(getMaxlength(res));                  }

    public static int getMaxlength(int[] A) {         int size=A.length;         if (size <= 0)             return 0;         int index;         int res = 1;         int current = 1;         for (int i = 1; i < size; i++) {             if (A[i] > A[i - 1]) {                 current++;             } else {                 if (current > res) {                     index = i - current;                     res = current;                 }                 current = 1;             }         }         return res;     }      }