当前位置: 首页 > news >正文

1027. 最长等差数列【leetcode】/动态规划

1027. 最长等差数列

给你一个整数数组 nums,返回 nums 中最长等差子序列的长度。

回想一下,nums 的子序列是一个列表 nums[i1], nums[i2], …, nums[ik] ,且 0 <= i1 < i2 < … < ik <= nums.length - 1。并且如果 seq[i+1] - seq[i]( 0 <= i < seq.length - 1) 的值都相同,那么序列 seq 是等差的。

示例 1
输入:nums = [3,6,9,12]
输出:4
解释: 整个数组是公差为 3 的等差数列。

示例 2
输入:nums = [9,4,7,2,10]
输出:3
解释:最长的等差子序列是 [4,7,10]。

示例 3
输入:nums = [20,1,15,3,10,5,8]
输出:4
解释:最长的等差子序列是 [20,15,10,5]。

提示:
2 <= nums.length <= 1000
0 <= nums[i] <= 500

动态规划

如果开数组会爆,只能开容器。
dp[i][j]表示第i个元素及前面元素的公差为j的最长等差数列的长度,因为公差范围最小可以到-500,于是每个公差进行处理+500使其非负。

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

相关文章:

  • 【嵌入式】CAN总线
  • 数据库管理-第151期 Oracle Vector DB AI-03(20240218)
  • 【算法】树状数组
  • 突破编程_C++_面试(变量与常量)
  • WireShark 安装指南:详细安装步骤和使用技巧
  • 算法练习-01背包问题【含递推公式推导】(思路+流程图+代码)
  • 沁恒CH32V30X学习笔记11---使用外部时钟模式2采集脉冲计数
  • PAM | 账户安全 | 管理
  • 适用于Android 的 7 大短信恢复应用程序
  • 机器学习入门--门控循环单元(GRU)原理与实践
  • Linux系统之部署网页小游戏合集网站
  • nginx 日志改为json格式
  • USACO 2024年1月铜组 MAJORITY OPINION(思维 模拟)
  • 【实战】一、Jest 前端自动化测试框架基础入门(一) —— 前端要学的测试课 从Jest入门到TDD BDD双实战(一)
  • vue常见问题
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • [iOS]Core Data浅析一 -- 启用Core Data
  • __proto__ 和 prototype的关系
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • CAP 一致性协议及应用解析
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • JavaWeb(学习笔记二)
  • Just for fun——迅速写完快速排序
  • Linux各目录及每个目录的详细介绍
  • Mithril.js 入门介绍
  • MySQL QA
  • Python学习之路16-使用API
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • VuePress 静态网站生成
  • vue自定义指令实现v-tap插件
  • 动态魔术使用DBMS_SQL
  • 聊聊flink的TableFactory
  • 浅谈web中前端模板引擎的使用
  • 使用 Docker 部署 Spring Boot项目
  • 一些关于Rust在2019年的思考
  • 运行时添加log4j2的appender
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • 阿里云API、SDK和CLI应用实践方案
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • #pragma pack(1)
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • $.each()与$(selector).each()
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (07)Hive——窗口函数详解
  • (2)STM32单片机上位机
  • (Python) SOAP Web Service (HTTP POST)
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (转)Oracle 9i 数据库设计指引全集(1)