每天一道leetcode:1218. 最长定差子序列(动态规划中等)

news2025/4/19 15:52:15

今日份题目:

给你一个整数数组 arr 和一个整数 difference,请你找出并返回 arr 中最长等差子序列的长度,该子序列中相邻元素之间的差等于 difference

子序列 是指在不改变其余元素顺序的情况下,通过删除一些元素或不删除任何元素而从 arr 派生出来的序列。

示例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]。

提示

  • 1 <= arr.length <= 105

  • -104 <= arr[i], difference <= 104

题目思路

这道题目,我们假设选择当前数据,那么到目前数值为止的最长序列长度应该为这个数值减去difference的那个数记录的长度加一,所以得到状态转移方程:dp[arr[i]]=dp[arr[i]-difference]+1;

注意:由于arr[i]的数据范围有负数,普通的数组不能用来记录有负数的情况,故使用unordered_map记录dp值。

代码

class Solution 
{
public:
    int longestSubsequence(vector<int> &arr, int difference) 
    {
        int ans=0;
        unordered_map<int,int> dp;        
        //假设结果序列选择当前数据,那么到目前数值为止的最长序列长度为状态转移方程
        for(int i=0;i<arr.size();i++) 
        {
            dp[arr[i]]=dp[arr[i]-difference]+1; //状态转移方程
            ans=max(ans,dp[arr[i]]); //记录最大结果
        }
        return ans;
    }
};

提交结果

欢迎大家在评论区讨论,如有不懂的部分,欢迎在评论区留言!

更新不易,宝子们点个赞支持下,谢谢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/885233.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mavros源码安装与配置

0 背景 Ubuntu20.04 双系统 ROS Noetic Mavros本质上是ROS的一个功能包&#xff0c;因为笔者需要对其进行二次开发&#xff0c;所以选择源码安装。 参考&#xff1a;官方repository链接&#xff0c;官方安装文档 1 安装步骤 首先&#xff0c;确保安装了catkin相关工具 # f…

防御DDoS服务应如何选择?一文全面讲透

最近人人都在谈论 DDoS&#xff0c; DDoS攻击不仅会损害受害者的金钱、服务和信誉&#xff0c;伴随着互联网的快速发展&#xff0c;它的防御难度相当大。报告显示&#xff0c;65%以上的DDoS攻击每小时给受害企业造成的损失高达一万美金。那么如何为企业构建全面的应对策略&…

Java:PO、VO、BO、DO、DAO、DTO、POJO

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; Java&#xff1a;PO、VO、BO、DO、DAO、DTO、POJO PO持久化对象&#xff08;Persistent Object&#xff09; PO是持久化对象&#xff0c;用于表示数据库中的实体或表…

Iridient Developer for mac RAW图像调整

Iridient Developer 支持多种不同的文件格式&#xff0c;包括常见的RAW格式&#xff0c;如CR2、NEF、RAF等&#xff0c;以及JPEG、TIFF等。它具有非常精确的图像处理引擎&#xff0c;能够提供高质量的图像细节和色彩还原。 该软件提供了丰富的调整选项&#xff0c;包括曝光、白…

GRPC 链接 NODE 和 GOLANG

GRPC 链接 NODE 和 GOLANG GRPC 了解 什么是GRPC gRPC 采用了 Protocol Buffers 作为数据序列化和反序列化的协议&#xff0c;可以更快速地传输数据&#xff0c;并支持多种编程语言的跨平台使用gRPC 提供“统一水平层”来对此类问题进行抽象化。 开发人员在本机平台中编写专…

idea git命令使用

这个标签标识单签分支&#xff1a;&#xff08;标签图标&#xff09; 标识关联分支&#xff1a;&#xff08;五角星&#xff09; 本地切换分支&#xff1a;如当前分支是dev ,git branch 显示的是dev ,然后通过 git checkout -b release 切换到release分支 git checkout re…

JUC并发集合

目录 传统类集框架的弊端 1.并发集合的类型 2.并发单值集合 3.并发多值集合 4.跳表集合 传统类集框架的弊端 传统的类集框架存在一个非常严重的弊端。那就是在多线程的情况下对集合修改会报错。 如下代码 package Example2123;import java.util.ArrayList; import jav…

easyx图形库基础4:贪吃蛇

贪吃蛇 一实现贪吃蛇&#xff1a;1.绘制网格&#xff1a;1.绘制蛇&#xff1a;3.控制蛇的默认移动向右&#xff1a;4.控制蛇的移动方向&#xff1a;5.生成食物6.判断蛇吃到食物并且长大。7.判断游戏结束&#xff1a;8.重置函数&#xff1a; 二整体代码&#xff1a; 一实现贪吃蛇…

今年七夕情人节,要送数码产品给对象?这几款送人不出错的数码产品

时间过的还挺快的又到了今年的七夕情人节了&#xff0c;你是否还在为送什么数码产品给对象而犯愁&#xff1f;做过功课挑选的数码好物肯定会让TA十分惊喜&#xff0c;作为一个数码发烧友&#xff0c;我盘点了几款适合送对象的数码好物&#xff0c;大家可以甄选看看。 第一款&a…

LeetCode--HOT100题(32)

目录 题目描述&#xff1a;138. 复制带随机指针的链表&#xff08;中等&#xff09;题目接口解题思路代码 PS: 题目描述&#xff1a;138. 复制带随机指针的链表&#xff08;中等&#xff09; 给你一个长度为 n 的链表&#xff0c;每个节点包含一个额外增加的随机指针 random &…

【C++】位图与布隆过滤器(内含相关高频面试题)

本篇文章会对位图和布隆过滤器进行详解。同时还会给出位图和布隆过滤器相关的高频面试题与解答。希望本篇文章会对你有所帮助。 文章目录 一、位图的引入 1、1 查找整数&#xff08;腾讯面试题&#xff09; 1、2 解决方法1 1、3 解决方法2 1、3、1 外部排序 二、位图的原理与…

电压调整器之LDO稳压器电路 士兰微SA1117B系列SA1117BH-ADJTR

关于LDO调节器&#xff08;Low Dropout Regulator&#xff09;是一种电压稳压器件&#xff0c;常用于电子设备中&#xff0c;用于将高电压转换为稳定的低电压。它能够在输入电压和输出电压之间产生较小的差异电压&#xff0c;因此被称为"低压差稳压器"。 LDO调节器通…

Llama 2免费托管及API提供

Llama 2 是 Meta 最新的文本生成模型&#xff0c;目前其性能优于所有开源替代方案。 推荐&#xff1a;用 NSDT编辑器 快速搭建可编程3D场景 1、强大的Llama 2 它击败了 Falcon-40B&#xff08;之前最好的开源基础模型&#xff09;&#xff0c;与 GPT-3.5 相当&#xff0c;仅低…

禁止特斯拉入内 — 智能驾驶引发的“争议”与“合规”之路

近日&#xff0c;湖南岳阳三荷机场停车场禁止特斯拉入内引发关注&#xff0c;原因在于车主离开车辆后&#xff0c;特斯拉自带的哨兵模式会对车身周边环境进行录像。实际上&#xff0c;之前就有网友提到军事禁区、党政机关、重点政府单位、重点国有企业等也是不允许特斯拉进入。…

电商增强现实3D模型优化需要关注的4个方面

到目前为止&#xff0c;AR技术已经发展到足以在更广泛的范围内实施。 在电子商务中&#xff0c;这项技术有望提供更令人兴奋的购物体验。 为了实现这一目标&#xff0c;在这篇博客中&#xff0c;我将介绍如何针对电子商务中的 AR 优化 3D 模型。 推荐&#xff1a;用 NSDT编辑器…

【hadoop】windows上hadoop环境的搭建步骤

文章目录 前言基础环境下载hadoop安装包下载hadoop在windows中的依赖配置环境变量 Hadoop hdfs搭建创建hadfs数据目录修改JAVA依赖修改配置文件初始化hdfs namenode启动hdfs 前言 在大数据开发领域中&#xff0c;不得不说说传统经典的hadoop基础计算框架。一般我们都会将hadoo…

LeetCode 160.相交链表

文章目录 &#x1f4a1;题目分析&#x1f4a1;解题思路&#x1f6a9;步骤一&#xff1a;找尾节点&#x1f6a9;步骤二&#xff1a;判断尾节点是否相等&#x1f6a9;步骤三&#xff1a;找交点&#x1f344;思路1&#x1f344;思路2 &#x1f514;接口源码 题目链接&#x1f449;…

九五从零开始的运维之路(其三十五)

文章目录 前言一、概述1.概念2.组成3.特点4.工作原理5.优点&#xff1a; 二、各节点及其ip地址三、构建MHA1.ssh免密登录2.构建mysql主从复制&#xff08;一&#xff09;安装mariadb数据库并启动&#xff08;二&#xff09;master服务器&#xff08;三&#xff09;slave服务器&…

【Java转Go】快速上手学习笔记(二)之基础篇一

目录 创建项目数据类型变量常量类型转换计数器键盘交互流程控制代码运算符 创建项目 上篇我们安装好了Go环境&#xff0c;和用IDEA安装Go插件来开发Go项目&#xff1a;【Java转Go】快速上手学习笔记&#xff08;一&#xff09;之环境安装篇 。 这篇我们开始正式学习Go语言。我…

【数据结构OJ题】链表中倒数第k个结点

原题链接&#xff1a;https://www.nowcoder.com/practice/529d3ae5a407492994ad2a246518148a?tpId13&&tqId11167&rp2&ru/activity/oj&qru/ta/coding-interviews/question-ranking 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 …