题解 | #最长公共子序列(一)#

最长公共子序列(一)

https://www.nowcoder.com/practice/672ab5e541c64e4b9d11f66011059498

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
    await readline();
    let str1 = await readline();
    let str2 = await readline();
    let dp = Array.from({ length: str1.length }, () =>
        Array.from({ length: str2.length }, () => 0)
    );

    for (let i = 0; i < str1.length; i++) {
        for (let j = 0; j < str2.length; j++) {
            if (str1[i] === str2[j]) {
			  // ab aab 第二个a不加1取上 abb ab 第二个b不加1取左
			  // 综合取左上,不包含自身元素重复元素
                dp[i][j] = (dp[i - 1]?.[j - 1] || 0) + 1;
            }
            let up = dp[i - 1]?.[j] || 0;
            let left = dp[i]?.[j - 1] || 0;
            dp[i][j] = Math.max(up, left, dp[i][j]);
        }
    }
    console.log(dp[str1.length - 1][str2.length - 1]);
})();

全部评论

相关推荐

06-20 17:42
东华大学 Java
凉风落木楚山秋:要是在2015,你这简历还可以月入十万,可惜现在是2025,已经跟不上版本了
我的简历长这样
点赞 评论 收藏
分享
07-02 10:39
门头沟学院 Java
Steven267:说点真实的,都要秋招了,还没有实习,早干嘛去了,本来学历就差,现在知道急了,而且你这个简历完全可以写成一页,劣势太大了,建议转测试
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务