24.两个子序列的最大点积

class Solution {
    int f[505][505];
public:
    int maxDotProduct(vector<int>& nums1, vector<int>& nums2) {
        int m=nums1.size(),n=nums2.size();
        int ans=-1e9;
        for(int i=1;i<=m;i++){
            for(int j=1;j<=n;j++){
                ans=max(ans,f[i-1][j-1]+nums1[i-1]*nums2[j-1]);//当前态:f[i-1][j-1]+nums1[i-1]*nums2[j-1]
                f[i][j]=max({f[i-1][j],f[i][j-1],f[i-1][j-1]+nums1[i-1]*nums2[j-1]});//下一状态
            }
        }
        return ans;
    }
};

 

posted @ 2020-07-30 12:45  阿破  阅读(116)  评论(0编辑  收藏  举报