題目
給定一個序列A及它的長度n(長度小於等於500),請返回LIS的長度
分析
這是一個經典的LIS(即最長上升子序列)問題,可以利用動態規劃的思想解決
private static int getLIS(int[] A, int n) {
// write code here
int[] dp = new int[n];
int max = 0;
for (int i = 0; i < n; i++) {
dp[i] = 1;
for (int j = 0; j < i; j++) {
if (A[j] < A[i] && dp[j] + 1 > dp[i]) {
dp[i] = dp[j] + 1;
}
}
if (max < dp[i]) {
max = dp[i];
}
}
return max;
}