1218. 最长定差子序列

2021-01-10  本文已影响0人  来到了没有知识的荒原

1218. 最长定差子序列

LIS还能这样优化的

class Solution {
public:
    int longestSubsequence(vector<int>& arr, int difference) {
        unordered_map<int,set<int>>mp,mp2;
        int n=arr.size();
        int dp[n];
        memset(dp,0,sizeof dp);
        for(int i=0;i<n;i++){
            dp[i]=1;
            if(mp.count(arr[i]-difference)){
                for(auto j:mp[arr[i]-difference]){
                    dp[i]=max(dp[i],dp[j]+1);
                }
            }
            mp[arr[i]].insert(i);
        }
        int res=0;
        for(int i=0;i<n;i++)res=max(res,dp[i]);
        return res;
    }
};
上一篇下一篇

猜你喜欢

热点阅读