题目:
思路:
不论从哪开始走,第一步值为1
dp = [1]
针对一根桩子,往前看,第i根桩子的步数必然是前面比它矮的最近一根的步数 + 1
状态转移方程:
当arr[i] > arr[i - 1]时,必然有dp[i] = dp[i - 1] + 1
提交:
let length
while (length = Number(readline())) {
let arr = readline().trim().split(' ').map(item => Number(item))
let dp = new Array(length).fill(1)
let result = 0
for (let i = 0; i < length; i++) {
for (let j = 0; j < i; j++) {
if (arr[j] < arr[i]) {
if (dp[i] <= dp[j]) {
dp[i] = dp[j] + 1
}
}
}
result = result < dp[i] ? dp[i] : result
}
console.log(result)
}