题解 | #Redraiment的走法#

Redraiment的走法

https://www.nowcoder.com/practice/24e6243b9f0446b081b1d6d32f2aa3aa

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
    const n = await readline();
    const datas = (await readline()).split(' ').filter(i => i).map(i => parseInt(i));
    if (parseInt(n) != datas.length) {
        throw new Error('非法输入')
    }
    const num = maxLong(datas)
    console.log(num)
}()

// f(n) = f(i) + 1, i < n 
function maxLong(datas) {
    let maxLongs = [];
    let max = 0;
    for (let i = 0; i < datas.length; i++) {
        maxLongs[i] = 1;        
        for (j = 0; j < i; j++) {
            if (datas[j] < datas[i]) {
                maxLongs[i] = Math.max(maxLongs[j] + 1, maxLongs[i]);
            }
        }
        max = max < maxLongs[i] ? maxLongs[i] : max;
    }
    return max;
}

全部评论

相关推荐

04-22 15:13
已编辑
Java
点赞 评论 收藏
分享
05-01 22:41
中南大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务