All pastes #2102564 Raw Edit

Unnamed

public text v1 · immutable
#2102564 ·published 2012-01-12 11:35 UTC
rendered paste body
import java.util.*;

public class LISDPDemo {
  private static Vector < Integer > X = new Vector < Integer > ();
  private static Vector < Integer > memo = new Vector < Integer > ();
  private static int N;

  private static int LIS(int i) {
    if (i == N - 1) return 1;
    if (memo.get(i) != -1) return memo.get(i); 

    int ans = 1; 
    for (int j = i + 1; j < N; j++)
      if (X.get(i) < X.get(j)) 
        ans = Math.max(ans, LIS(j) + 1);
    memo.set(i, ans);
    return ans;
  }

  public static void main(String[] args) {

     Scanner sc = new Scanner(System.in);
     
     N = sc.nextInt();
     X.clear(); X.addAll(Collections.nCopies(N, 0));
     for (int i = 0; i < N; i++)
       X.set(i, sc.nextInt());
     
     memo.clear(); memo.addAll(Collections.nCopies(N, -1)); // to say 'not filled yet'
     System.out.printf("LIS = %d\n", LIS(0));
  }
}