描述
Redraiment 是走梅花桩的高手。现在,地上有 n 个梅花桩排成一排,从前到后高度依次为 h1,h2,…,hn。
Redraiment 可以任选一个梅花桩开始,向后跳到任意一个比当前高度高的梅花桩上。
求 Redraiment 最多可以跳过多少个梅花桩。
输入描述:
第一行输入一个整数 n(1≦n≦200) 代表梅花桩的数量。
第二行输入 n 个整数 h1,h2,…,hn(1≦hi≦350) 代表每一个梅花桩的高度。
输出描述:
输出一个正整数,代表 Redraiment 最多可以跳过多少个梅花桩。
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void (async function () {
// Write your code here
let n = 0;
let arr = [];
while ((line = await readline())) {
if (n === 0) {
n = parseInt(line);
} else {
arr = line.split(" ").map(Number);
// 初始化dp数组--以i结尾的的最长递增子序列长度,初始值为1
let dp = Array(arr.length).fill(1);
let res = 1;
for (let i = 1; i < arr.length; i++) {
for (j = 0; j < i; j++) {
if (arr[i] > arr[j]) {
dp[i] = Math.max(dp[i], dp[j] + 1);
}
}
res = Math.max(res, dp[i]);
}
console.log(res);
}
}
})();