zoukankan      html  css  js  c++  java
  • leetcode每日一题(2020-07-01):718. 最长重复子数组

    题目描述:
    给两个整数数组 A 和 B ,返回两个数组中公共的、长度最长的子数组的长度。

    今日学习:
    1.动态规划真的是变化无穷
    2.滑动窗口也是
    题解:
    1.动规:若AB中数字相等,dp[i][j] = dp[i - 1][j - 1] + 1,否则为0
    2.滑动窗口:类似暴力法,滑动A和B分别对齐比较

    //动态规划
    var findLength = function(A, B) {
        let m = A.length
        let n = B.length
        let dp = new Array(m + 1)
        for(let i = 0; i < m + 1; i++) {
            dp[i] = new Array(n + 1).fill(0)
        } 
        let res = 0
        for(let i = 1; i <= m; i++) {
            for(let j = 1; j <= n; j++) {
                if (A[i - 1] == B[j - 1]) {
                    dp[i][j] = dp[i - 1][j - 1] + 1;
            }
            res = Math.max(dp[i][j], res);
            }
        }
        return res
    };
    //滑动窗口
    var findLength = function(A, B) {
        let m = A.length, n = B.length, res = 0;
        for(let diff = -(m - 1); diff <= n - 1; ++diff) { // 枚举对应关系
            for(let i = Math.max(0, -diff), l = 0; i < Math.min(m, n - diff); ++i) { // 遍历公共部分
                l = (A[i] == B[i + diff]) ? (l + 1) : 0;
                res = Math.max(res, l);
            }
        }
        return res;
    }
    
  • 相关阅读:
    io
    api 类库
    文档生成工具
    数据存储
    uml vs2010
    IE,firefox下jquery获取一组checkbox选中值的问题
    如何通过Jquery简单又快速的获取一组radio的取值呢?
    WCF重载的方式
    Jquery文本框赋值
    Jquery以name获取值
  • 原文地址:https://www.cnblogs.com/autumn-starrysky/p/13218169.html
Copyright © 2011-2022 走看看