leetcode 1218. 最长定差子序列
问题描述
给你一个整数数组 arr 和一个整数 difference,请你找出 arr 中所有相邻元素之间的差等于给定 difference 的等差子序列,并返回其中最长的等差子序列的长度。
 
示例 1:
输入:arr = [1,2,3,4], difference = 1
输出:4
解释:最长的等差子序列是 [1,2,3,4]。
示例 2:
输入:arr = [1,3,5,7], difference = 1
输出:1
解释:最长的等差子序列是任意单个元素。
示例 3:
输入:arr = [1,5,7,8,5,3,4,2,1], difference = -2
输出:4
解释:最长的等差子序列是 [7,5,3,1]。
代码
class Solution {
public:
    int longestSubsequence(vector<int>& arr, int difference) {
        int n = arr.size(),ans = 1;
        if(n == 0)return 0;
        unordered_map<int,int> table;
        vector<int>dp(n,1);
        table[arr[0]] = 0;
        for(int i = 1; i < n; ++i)
        {
            int num = arr[i] - difference;
            if(table.count(num))//说明之前有可以连成等差数列的值
            {
                int ind = table[num];//找到该数值的坐标
                dp[i] = dp[ind] + 1;
                ans = max(dp[i],ans);
            }
            table[arr[i]] = i;
        }
        return ans;
    }
};
结果:
执行用时:304 ms, 在所有 C++ 提交中击败了76.78%的用户
内存消耗:53.3 MB, 在所有 C++ 提交中击败了47.48%的用户
leetcode 1218. 最长定差子序列的更多相关文章
- LeetCode 5214. 最长定差子序列(Java)HashMap
		题目: 5214. 最长定差子序列 给你一个整数数组 arr 和一个整数 difference,请你找出 arr 中所有相邻元素之间的差等于给定 difference 的等差子序列,并返回其中最长的等 ... 
- leetcode-157周赛-5214-最长定差子序列
		题目描述: class Solution: def longestSubsequence(self, arr: List[int], difference: int) -> int: dp = ... 
- LeetCode 516——最长回文子序列
		1. 题目 2. 解答 与最长回文子串类似,我们可以用动态规划来求解这个问题,只不过这里的子序列可以不连续.我们定义状态 state[i][j] 表示子串 s[i, j] 的最长回文子序列长度,那么状 ... 
- Leetcode 516.最长回文子序列
		最长回文子序列 给定一个字符串s,找到其中最长的回文子序列.可以假设s的最大长度为1000. 示例 1:输入: "bbbab" 输出: 4 一个可能的最长回文子序列为 " ... 
- Java实现 LeetCode 516 最长回文子序列
		516. 最长回文子序列 给定一个字符串s,找到其中最长的回文子序列.可以假设s的最大长度为1000. 示例 1: 输入: "bbbab" 输出: 4 一个可能的最长回文子序列为 ... 
- LeetCode.516 最长回文子序列 详解
		题目详情 给定一个字符串s,找到其中最长的回文子序列.可以假设s的最大长度为1000. 示例 1: 输入: "bbbab" 输出: 4 一个可能的最长回文子序列为 "bb ... 
- LeetCode 594. Longest Harmonious Subsequence (最长的协调子序列)
		We define a harmonious array is an array where the difference between its maximum value and its mini ... 
- [LeetCode] Longest Uncommon Subsequence I 最长非共同子序列之一
		Given a group of two strings, you need to find the longest uncommon subsequence of this group of two ... 
- [LeetCode] Longest Palindromic Subsequence 最长回文子序列
		Given a string s, find the longest palindromic subsequence's length in s. You may assume that the ma ... 
随机推荐
- 调配资源(Project)
			<Project2016 企业项目管理实践>张会斌 董方好 编著 当资源过度分配了,肿么办? 比如前面的例子,某吃货甲,一天之内给他分配了9.6个工时的吃量,这怎么可以呢,让人加班是不厚道 ... 
- 在JSP页面里,时间控件的JS位置在下面然后就显示不出来
			在JSP页面里,时间空间的JS位置在下面然后就显示不出来,放到前面然后就显示出来了, 情何以堪啊,开始还以为是什么错误. 
- STL源码剖析-waked_ptr
			目录一.提问二. 代码实现2.1 mweak_ptr的具体实现2.2 测试用例一.提问weak_ptr为什么会存在?shared_ptr不是已经有了引用计数吗?具体原因详见模拟实现boost库中的sh ... 
- PDF 补丁丁开放源代码
			PDF补丁丁是一个多功能的 PDF 文档工具箱,在 2009 年开始,我开始了该程序的开发,到现在也已经有十二年了.它致力于解除 PDF 文档的烦恼,带有一个强大的 PDF 书签编辑器(可自动生成书签 ... 
- Linux(centos)使用docker安装pdf2htmlEX
			pdf2htmlEX是一款可以将pdf文档转换成html文件的插件,但是Linux系统安装起来很麻烦,所以我们使用docker进行安装 首先要安装docker 因为国外镜像很慢,所以我们这边修改使用国 ... 
- 『与善仁』Appium基础 — 28、webview的操作方式
			目录 1.先了解什么是Hybrid(混合) 2.识别Webview 3.context上下文 4.Webview和原生页面之前的切换 5.综合练习 我们之前说过的所有操作,都是对原生页面的操作. 在手 ... 
- java源码——两种格式日期的转换
			这里要实现1981.07.30 格式和July 30.1981格式的日期的转换. 在输入时进行日期格式的识别,并且对字符串进行操作并且输出. 难点在于字符串格式的识别和月份的转换,我用了正则表达式匹配 ... 
- 【LeetCode】136. Single Number 解题报告(Java & Python)
			作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 异或 字典 日期 [LeetCode] 题目地址:h ... 
- 【LeetCode】541. Reverse String II 解题报告(Python)
			作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 Java解法 Python解法 日期 题目地址:ht ... 
- 利用 jQuery 操作页面元素的方法,实现电商网站购物车页面商品数量的增加和减少操作,要求单项价格和总价随着数量的改变而改变
			查看本章节 查看作业目录 需求说明: 利用 jQuery 操作页面元素的方法,实现电商网站购物车页面商品数量的增加和减少操作,要求单项价格和总价随着数量的改变而改变 当用户单击"+" ... 
