力扣题解( 最长定差子序列)

1218. 最长定差子序列

给你一个整数数组 arr 和一个整数 difference,请你找出并返回 arr 中最长等差子序列的长度,该子序列中相邻元素之间的差等于 difference 。

子序列 是指在不改变其余元素顺序的情况下,通过删除一些元素或不删除任何元素而从 arr 派生出来的序列。

思路:

本题的思路很简单,规定dp[i]是包含i位置元素的最长定差子序列,此时只需要确认在(0-i-1)位置中是否存在一个下标j,是的i位置元素减j位置元素仍时diffenence,则此时dp[i]=dp[j]+1.本题的优化是利用哈希表,存放已经求出最长定差子序列的元素和对应的下标,这样可以在O(1)时间内查找(0-i-1)中是否存在值为arr[i]-difference的元素。

class Solution {
public:
    int longestSubsequence(vector<int>& arr, int difference) {
     
     int n=arr.size();
     vector<int>dp(n,1);
     unordered_map<int,int>hash;
     hash[arr[0]]=0;
     for(int i=1;i<n;i++)
     {
        if(hash.count(arr[i]-difference))
        {
            dp[i]=dp[hash[arr[i]-difference]]+1;
        }
        hash[arr[i]]=i;
     }
     
     int ret=0;
     for(auto e:dp)
     {
        ret=max(ret,e);
     }

     return ret;

    }
};

相关推荐

  1. 题解序列

    2024-07-13 05:26:03       26 阅读
  2. 题解递增序列

    2024-07-13 05:26:03       24 阅读
  3. leetcode 1218.序列

    2024-07-13 05:26:03       36 阅读
  4. 题解的斐波那契序列的长度)

    2024-07-13 05:26:03       24 阅读
  5. 题解湍流数组)

    2024-07-13 05:26:03       24 阅读
  6. 公共序列

    2024-07-13 05:26:03       31 阅读
  7. 300. 递增序列 python AC

    2024-07-13 05:26:03       25 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-13 05:26:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-13 05:26:03       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-13 05:26:03       58 阅读
  4. Python语言-面向对象

    2024-07-13 05:26:03       69 阅读

热门阅读

  1. npm和yarn清理缓存命令

    2024-07-13 05:26:03       21 阅读
  2. C/C++服务器基础(网络、协议、数据库)

    2024-07-13 05:26:03       23 阅读
  3. React@16.x(55)Redux@4.x(4)- store

    2024-07-13 05:26:03       23 阅读
  4. Reactor 模式

    2024-07-13 05:26:03       23 阅读
  5. python 端口的转发

    2024-07-13 05:26:03       32 阅读
  6. 软设之迭代器模式

    2024-07-13 05:26:03       23 阅读
  7. 华为od 100问 持续分享-2

    2024-07-13 05:26:03       28 阅读
  8. 7-3 打怪升级(25 分)

    2024-07-13 05:26:03       25 阅读
  9. AC修炼计划( AtCoder Regular Contest 178)A~C

    2024-07-13 05:26:03       23 阅读
  10. Linux学习笔记(三)文件权限

    2024-07-13 05:26:03       28 阅读