题解 | #Redraiment的走法#
Redraiment的走法
http://www.nowcoder.com/practice/24e6243b9f0446b081b1d6d32f2aa3aa
``` public static int maxn = 101;
public static int dp(int cur, int[] d, int[] v, int n, int[] a) {
if (v[cur] != 0) return d[cur];
v[cur] = 1;
d[cur] = 1;
for (int i = 0; i < n; i++)
if (cur > i && a[cur] > a[i]) {
d[cur] = Math.max(d[cur], dp(i, d, v, n, a)) + 1;
}
return d[cur];
}
//2 5 1 5 4 5
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
int[] v = new int[maxn];
int[] d = new int[maxn];
int a[] = new int[maxn];
int n = in.nextInt();
for (int i = 0; i < n; i++) {
a[i] = in.nextInt();
}
dp(n - 1, d, v, n, a);
int best = 0;
for (int i = 0; i < n; i++) {
best = Math.max(best, d[i]);
}
System.out.println(best);
}
}