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;}};

相关新闻

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

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

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

2026/10/17 3:18:15 阅读更多 →
视频本地化混合翻译方案:AI与人工的黄金比例

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

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

2026/10/16 4:07:40 阅读更多 →
《地狱之门:东线》发电机行动战术解析:转进如风与兵种协同

《地狱之门:东线》发电机行动战术解析:转进如风与兵种协同

如果你是一名二战游戏爱好者,最近在《地狱之门:东线》的英军战役中卡关,特别是面对“发电机行动”(敦刻尔克大撤退)这个高难度任务时感到束手无策,那么这篇文章就是为你准备的。 很多玩家以为这场战役只是简单的“边打边撤”,但实际上它考验的是你对战场节奏的精准把控…

2026/10/18 17:12:20 阅读更多 →

最新新闻

PP-DocLayoutV3版面分析实战:从RAG乱序到结构化文档预处理

PP-DocLayoutV3版面分析实战:从RAG乱序到结构化文档预处理

前阵子在帮某技术团队做企业内部知识库的问答系统,天天和一批扫描版PDF打交道。系统整体跑通之后,检索质量一直上不去,答非所问的情况特别多。排查到最后,问题指向的不是向量模型,也不是检索策略,而是最基础…

2026/10/19 4:50:03 阅读更多 →
HDFS生产级深度解析:架构本质、配置陷阱与可观测运维

HDFS生产级深度解析:架构本质、配置陷阱与可观测运维

1. 项目概述:从“离线Day03”看HDFS在真实数据工程中的定位你打开一份名为“hadoop离线day03--Hadoop HDFS”的课程材料或笔记标题,第一反应可能是:“哦,又一节Hadoop基础课”。但如果你真在某公司数据平台组干过两年以上&#xf…

2026/10/19 4:50:02 阅读更多 →
AutoGen 10.1实战:多Agent对话协作框架全面拆解

AutoGen 10.1实战:多Agent对话协作框架全面拆解

“10.1”这个版本号一出来,熟悉的朋友应该知道我说的是哪个东西——AutoGen,微软开源的那个多智能体对话框架。在很多项目里,真正让它出圈的不是“能写代码”,而是它把多个AI Agent组织起来,让它们像人开会一样你一言我…

2026/10/19 4:50:02 阅读更多 →
open-code-review:面向生产环境的可审计代码审查CLI

open-code-review:面向生产环境的可审计代码审查CLI

1. 这不是又一个“AI写代码”玩具:open-code-review 的真实定位与不可替代性你可能已经点开过十几个标着“AI Code Review”的开源项目,下载、安装、跑 demo,然后发现——它要么在 PR 描述里胡乱夸你“逻辑清晰”,要么对着一行if …

2026/10/19 4:50:02 阅读更多 →
开源本地化代码审查工具 open-code-review 实战指南

开源本地化代码审查工具 open-code-review 实战指南

1. 这不是又一个“AI写代码”玩具,而是一套能嵌入真实开发流水线的开源代码审查工作流我第一次在团队内部试运行open-code-review的时候,没敢直接推到主分支,而是先拉了个feat/open-cr-test分支,把上周刚合并的三个 PR 全部回滚重…

2026/10/19 4:50:02 阅读更多 →
室内AI出图三周实战路线:从零基础到稳定交付效果图

室内AI出图三周实战路线:从零基础到稳定交付效果图

刚收到一位做室内设计的同行私信,开口就问:“室内AI出图要学多久?我看别人发的那种效果图太惊艳了,但自己连从哪下手都不知道。”我的回答很直接:三周,足够你从完全没碰过AI出图,到稳定输出客户…

2026/10/19 4:49:02 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →