尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
1218. 最长定差子序列
题目描述给你一个整数数组arrarrarr和一个整数differencedifferencedifference请你找出并返回arrarrarr中最长等差子序列的长度该子序列中相邻元素之间的差等于differencedifferencedifference。子序列 是指在不改变其余元素顺序的情况下通过删除一些元素或不删除任何元素而从arrarrarr派生出来的序列。示例 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]。算法原理子序列问题可用动态规划解决状态表示dp[i]dp[i]dp[i]表示以iii为结尾的所有等差子序列中最长等差子序列的长度状态转移方程由于题目给定了差值differencedifferencedifference所以在知道arr[i]aarr[i] aarr[i]a的情况下可以推出它前面的那个值等于a−differenceba - difference ba−differenceb。因此当获得值aaa时就去arrarrarr的[0,i−1][0, i-1][0,i−1]区间中找一个值bbb根据bbb的情况有两种状态[0,i−1][0, i-1][0,i−1]区间中不存在bbb此时aaa自己为一个等差子序列dp[i]1dp[i] 1dp[i]1[0,i−1][0, i-1][0,i−1]区间中存在bbb此时aaa要跟在以bbb为结尾的等差子序列之后假设0ji−10 j i-10ji−1以bbb为结尾的等差子序列它的长度为dp[j]dp[j]dp[j]以aaa为结尾的等差子序列它的长度就是dp[j]1dp[j] 1dp[j]1但是如果这样做就要去遍历[0,i−1][0, i-1][0,i−1]区间了效率太低我们进行优化由于差值固定为differencedifferencedifference当得到arr[i]aarr[i] aarr[i]a时在[0,i−1][0, i-1][0,i−1]区间内找任意一个bbb均可得到以aaa为结尾的最长等差子序列长度所以使用一个哈希表hashhashhash保存某等差子序列最后一个值和该等差子序列长度的映射关系当得到aaa时在hashhashhash中查找bbbbbb不存在就保存hash[a]1hash[a] 1hash[a]1。bbb存在就保存hash[a]hash[b]1hash[a] hash[b] 1hash[a]hash[b]1并更新结果初始化刚开始哈希表什么都没有i0i 0i0时会得到aarr[0]a arr[0]aarr[0]在哈希表中查找[0,−1][0, -1][0,−1]区间上的值bbb肯定是找不到的此时会填入arr[0]0arr[0] 0arr[0]0所以哈希表不需要初始化填表顺序从左到右遍历arrarrarr填充哈希表返回值哈希表中的最大值代码classSolution{public:intlongestSubsequence(vectorintarr,intdifference){unordered_mapint,inthash;// 某等差子序列最后一个值 - 该等差子序列的长度intans1;for(inti0;iarr.size();i){intaarr[i];intba-difference;if(hash.find(b)!hash.end())// 之前有以 b 为结尾的子序列{intlenhash[b];hash[a]len1;// 在以 b 为结尾的子序列之后带上 aansmax(ans,len1);}else// 之前没有以 b 为结尾的子序列{hash[a]1;}}returnans;}};
RELATED

相关推荐

金融风控场景下Qwen-7B大模型微调实战指南

金融风控场景下Qwen-7B大模型微调实战指南

1. 项目背景与核心价值去年开源大模型爆发式增长,但直接使用基础模型往往难以满足特定业务需求。我在金融风控场景中尝试直接调用Qwen-7B时发现,虽然通用能力不错,但在行业术语理解和风险规则判断上准确率只有63%。这促使我深入研究大模型微调…

📅 2026/10/18 5:06:44
视频本地化混合翻译方案:AI与人工的黄金比例

视频本地化混合翻译方案:AI与人工的黄金比例

1. 视频本地化行业的翻译需求现状视频内容全球化传播已成为企业拓展市场的标配需求。根据行业调研数据,85%的跨国企业需要将核心视频内容本地化为至少5种语言。传统纯人工翻译模式面临三大痛点:成本高(专业译员每分钟视频收费约15-30美元&…

📅 2026/9/15 14:39:36
如何为Nodejs后端服务配置Taotoken统一大模型调用接口

如何为Nodejs后端服务配置Taotoken统一大模型调用接口

如何为Nodejs后端服务配置Taotoken统一大模型调用接口 对于Node.js开发者而言,将大模型能力集成到后端服务中已成为常见需求。直接对接不同厂商的原生API往往意味着需要管理多个密钥、处理不同的调用格式,并在代码中维护复杂的切换逻辑。Taotoken平台提…

📅 2026/9/17 21:17:04
MORE NEWS

更多资讯

📰

孟津电工证复审怎么搞?实操考试心里没底怕挂科?全国通用证书你必须知道的事

孟津电工证复审怎么搞?实操考试心里没底怕挂科?全国通用证书你必须知道的事 实操考试心里没底怕挂科,特别是像孟津电工证复审这种,很多电工师傅一想到要重新上手实操,就担心操作不规范被扣分,甚至挂科。而且现在市面上的电工证五花八门,很多人拿到手的…

📰

国际电工证有几种类型在哪考?特种作业证上岗必备全解析

国际电工证有几种类型在哪考?特种作业证上岗必备全解析 你缺的不是技术,是那张能让你进工地的电工证。别再等机会,特种作业证没在手,连面试资格都没有。现在找工作, 国际电工证有几种类型在哪考…

📰

河南特种作业证操作证过期了怎么处理?全国通用证书复审全攻略

河南特种作业证操作证过期了怎么处理?全国通用证书复审全攻略 证书过期了不知道怎么复审延期,是不是你最近的烦心事?作为河南地区中小施工企业的负责人,特种作业证是必须的“通行证”。一旦过期,不仅影响项目进度,还可能面临停工整顿甚至罚款。尤其是…

📰

低压电工证啥时候报名千万别踩坑

低压电工证啥时候报名千万别踩坑 学历不高怕报不上名?低压电工证啥时候报名千万别踩坑,这波你必须知道! 很多人觉得低压电工证报名条件高,尤其是学历不高、工作经验少的,总担心自己不符合报考资格,白白浪费时间和金钱。但事实上,只要掌握好报名时间、…

📰

河南特种作业证操作证别怕考不过 白交培训费?电子证书帮你稳过

河南特种作业证操作证别怕考不过 白交培训费?电子证书帮你稳过 怕考不过白交培训费?别让河南特种作业证操作证成为你职业生涯的绊脚石!作为信阳浉河区应届工程类毕业生,你可能正在考虑要不要考个特种作业证,但心里总有个疑问:考不过怎么办?钱白花了不…

📰

深圳哪里有办理电工证在哪考别再踩坑了

深圳哪里有办理电工证在哪考别再踩坑了 怕考不过白交培训费?深圳哪里有办理电工证?别急,听我一句劝, 千万别找那些打着“包过”旗号的培训机构 ,你花的钱可能打水漂,耽误的还是一条路子。尤其是 低压电工证、高压电工证、焊工证、高处作业证…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬