和最长上升子序列类似,这里多加了公差的性质,第一种想法是开一个结构体dp一维数组,dp[i].val表示以i位置结尾的最长长度,dp[i].cha表示以i位置结尾的子序列公差,你会发现无法进行状态转移,假设i<j<k,dp[k]被dp[j]更新了,并且更新后长度最大,但这不代表i这个位置就一定不是最长等差序列之一,因为可能dp[i].val和dp[j].val只相差1甚至相同,但两者公差不一样,如果后面再来几个公差和dp[i].cha一样的,而你又没有把k位置给添加到序列中,这个状态没有被考虑,导致错误。
因此需要dp[i][j]表示第i个位置添加到末尾并且公差是j的最长长度。
之后再仿照最长上升子序列进行更新即可。

int dp[1100][1100];
class Solution {public:    int longestArithSeqLength(vector<int>& nums) {memset(dp,0,sizeof dp);int len=nums.size();int res=0;for(int i=1;i<len;i++){for(int j=0;j<i;j++){dp[i][nums[i]-nums[j]+500]=max(dp[j][nums[i]-nums[j]+500]+1,dp[i][nums[i]-nums[j]+500]);res=max(res,dp[i][nums[i]-nums[j]+500]);}}return res+1;}
};

Leetcode-1027最长等差数列相关推荐

  1. LeetCode 1027. 最长等差数列

    LeetCode 1027. 最长等差数列 文章目录 LeetCode 1027. 最长等差数列 题目描述 一.解题关键词 二.解题报告 1.思路分析 2.时间复杂度 3.代码示例 2.知识点 总结 ...

  2. LeetCode 1027. 最长等差数列(DP)

    1. 题目 给定一个整数数组 A,返回 A 中最长等差子序列的长度. 回想一下,A 的子序列是列表 A[i_1], A[i_2], ..., A[i_k] 其中 0 <= i_1 < i_ ...

  3. LeetCode 1218. 最长定差子序列(哈希map)

    1. 题目 给你一个整数数组 arr 和一个整数 difference,请你找出 arr 中所有相邻元素之间的差等于给定 difference 的等差子序列,并返回其中最长的等差子序列的长度. 示例 ...

  4. LeetCode 1027. Longest Arithmetic Sequence--笔试题--C++解法

    LeetCode 1027. Longest Arithmetic Sequence–笔试题–C++解法 LeetCode题解专栏:LeetCode题解 我做的所有的LeetCode的题目都放在这个专 ...

  5. LeetCode Hot100 ---- 最长相关专题(动态规划)

    动态规划解题步骤 核心思想是递推,难点在于想清楚 状态 dp[i] 代表什么,然后构造状态转移矩阵,利用初始条件递推出最终结果 将原问题拆分成子问题 确认状态 确认边界状态(初始条件) 状态转移方程 ...

  6. 1055 最长等差数列

    1055 最长等差数列 基准时间限制:2 秒 空间限制:262144 KB  N个不同的正整数,找出由这些数组成的最长的等差数列. 例如:1 3 5 6 8 9 10 12 13 14 等差子数列包括 ...

  7. LeetCode 718. 最长重复子数组(DP)

    1. 题目 给两个整数数组 A 和 B ,返回两个数组中公共的.长度最长的子数组的长度. 示例 1: 输入: A: [1,2,3,2,1] B: [3,2,1,4,7] 输出: 3 解释: 长度最长的 ...

  8. LeetCode 516. 最长回文子序列(动态规划)

    1. 题目 给定一个字符串s,找到其中最长的回文子序列.可以假设s的最大长度为1000. 示例 1: 输入: "bbbab" 输出: 4 一个可能的最长回文子序列为 "b ...

  9. LeetCode 5. 最长回文子串(动态规划)

    文章目录 1. 题目 2. 解题 2.1 自己写的DP 2.2 优化后的DP 2.3 中心扩展法 1. 题目 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. ...

  10. LeetCode 522. 最长特殊序列 II

    1. 题目 给定字符串列表,你需要从它们中找出最长的特殊序列. 最长特殊序列定义如下:该序列为某字符串独有的最长子序列(即不能是其他字符串的子序列). 子序列可以通过删去字符串中的某些字符实现,但不能 ...

最新文章

  1. Node.js实现本地客户端上传单个或者多个文件Excel文件(xls格式、xlsx格式文件)到服务器端,并且解析对应的Excel内容反馈到请求报文中
  2. 兼容性自动化测试 | HUAWEI DevEco Studio云测服务等您来体验
  3. ubuntu20.04安装mysql教程
  4. 【教程】条形码组件Spire.Barcode 教程:如何在C#中创建DataMatrix条码
  5. java继承时父类常量覆盖吗_Java父类继承中的static和final用法
  6. iis php http500,IIS7.5 PHP环境HTTP经常500错误处理方法
  7. RHEL5上Oracle9i的安装
  8. linux android真机测试
  9. JHipster简介
  10. 微信分享ios 不显示图片和简介问题总结
  11. 智能家居加速落地,景联文科技提供数据采集标注服务
  12. 计算机基础,Java介绍和环境搭建及Hello World
  13. ManiGAN Text-Guided Image Manipulation
  14. AbortController-中止请求
  15. CSAPP:Attack Lab —— 缓冲区溢出攻击实验
  16. 9-2 time类的加工
  17. 《飞轮效应》 - 系统动力学 - 增强回路 - 推荐序 /刘润
  18. 在Git上如何强推代码规范
  19. 在linux中shell输入./vmware-install.pl什么意思
  20. 中国高速动车组行业发展态势与十四五运营前景展望报告2022版

热门文章

  1. 开源数据库CockroachDB(二)
  2. 怎么用Midjourney制作表情包
  3. 合并Dev BPL教程
  4. ディーゼルは、特別な資質のこれらの種類をはるかに印象
  5. CRM项目问题使用总结
  6. [APR]Core Utilization和Cell Utilization的区别
  7. android 模拟发送http请求超时,OKHttp请求超时无效问题记录
  8. JAVA Socket详解
  9. H3C交换机三层转发和二层转发
  10. mysql查询最小时间的一条数据_SQL 获取时间最小的一条数据