leetcode 1218. Longest Arithmetic Subsequence of Given Difference(给定差值的最长算术子序列)

从官方例程到实战:AXI Memory Mapped To PCIe 核在FPGA-RC模式下的配置与调试全解析 本文详细解析了AXI Memory Mapped To PCIe核在FPGA-RC模式下的配置与调试方法。从IP核基础结构到实战参数设置,再到例程代码剖析和调试技巧,全面覆盖了AXI与PCIe协议转换的关键技术点,帮助开发者高效实现FPGA与PCIe设备的高速数据交互。 阅读详情

在这里插入图片描述

给数组arr和一个差值difference, 不打乱arr中数字的顺序,抽取最长的子序列,使序列中每相邻两个元素的差值为difference.
求满足条件的最长子序列的长度。

思路:

DP

因为差值difference是固定的,每抽取一个元素,它前面的元素也是固定的。
比如现在的元素为arr[ i ], 那么它前面的元素一定是arr[ i ] - difference.
所以到arr[ i ]为止的序列长度也是固定的。

只需要统计到arr[ i ]为止的子序列长度。
记下这些长度的最大值。

dp数组可以用一个hashMap, 保存(arr[ i ], 到arr[ i ]为止的子序列长度),
也可以用数组。

(1)HashMap

    public int longestSubsequence(int[] arr, int difference) {
        Map<Integer,Integer> dp = new HashMap<>();
        int n = arr.length;
        int res = 0;

        for(int i = 0; i < n; i++) {
            dp.put(arr[i], dp.getOrDefault(arr[i]-difference, 0)+1);
            res = Math.max(res, dp.get(arr[i]));
        }

        return res;
    }

(2) 数组
直接下标取元素,速度更快,
为了节省存储空间,dp数组长度为arr的最大值-最小值+1.
但是要注意dp中的下标是arr[ i ] - min. 并不是arr的下标 i。

    public int longestSubsequence(int[] arr, int difference) {
        int min = Integer.MAX_VALUE;
        int max = Integer.MIN_VALUE;
        int res = 1;

        for(int num : arr) {
            min = Math.min(min, num);
            max = Math.max(max, num);
        }

        int[] dp = new int[max-min+1];
        for(int i = 0; i < arr.length; i++) {
            int cur = arr[i] - min;
            int pre = cur - difference;
            if(pre >= 0 && pre < dp.length) {
                dp[cur] = dp[pre] + 1;
                if(dp[cur] > res) res = dp[cur];
            } else {
                dp[cur] = 1;
            }
        }
        return res;
    }
AHB不对称半桥反激电路设计(一)变换器拓扑工作原理详解 本文详细分析了AHB(不对称半桥)反激变换器拓扑的工作原理及关键优势。该拓扑通过谐振腔结构实现原边功率管的零电压开通(ZVS)和副边整流管的零电流关断(ZCS),显著提升效率至95%以上。文章阐述了6个工作阶段的时序特征,包括谐振电感电流和电容电压的数学模型推导。AHB拓扑具有漏感能量回收、宽电压输出(适配PD快充等场景)和协同储能等优势,相比传统方案可缩小变压器体积30%,成为100-300W隔离电源的理想选择。 阅读详情

相关推荐

Simulink中Simscape—Fluids模块(原Simhydraulics)学习记录

学习来源:http://cn.mathworks.com/help/physmod/hydro/getting-started-with-simhydraulics.html 主要学习内容如下图: 详细内容: 1、组件来源 SIMULINK浏览器中的模块:Simscape_Foundation 和 Simscape_Fluids。 2、Simscape下包括多个子

1万+

LeetCode 1218. Longest Arithmetic Subsequence of Given Difference

[Med] LeetCode 1218. Longest Arithmetic Subsequence of Given Difference 链接: https://leetcode.com/problems/longest-arithmetic-subsequence-of-given-difference/ 题目描述: Given an integer array arr and an i...

MrJustin的博客 367

folium离线地图实战:从下载到部署的完整指南

本文提供了一份完整的folium离线地图实战指南。针对网络不稳定或内网环境下的地图应用需求,详细讲解了如何下载离线地图瓦片数据,并通过两种核心方法(直接替换URL与创建TileLayer)将其集成到folium中。文章还涵盖了部署优化、边界处理及资源本地化等关键步骤,帮助你构建完全脱离网络依赖的交互式地图应用。

weixin_29061041的博客 274

Leetcode 1218.最长定差子序列(Longest Arithmetic Subsequence of Given Difference)

Leetcode 1218.最长定差子序列 1 题目描述(Leetcode题目链接)   给你一个整数数组 arr 和一个整数 difference,请你找出 arr 中所有相邻元素之间的差等于给定 difference 的等差子序列,并返回其中最长的等差子序列的长度。 输入:arr = [1,2,3,4], difference = 1 输出:4 解释:最长的等差子序列是 [1,2,3,4]。 ...

qq_39378221的博客 597

【黑马点评优化】2-Canel实现多级缓存(Redis+Caffeine)同步

【黑马点评优化】2-Canel实现多级缓存(Redis+Caffeine)同步

m0_52031708的博客 3841

基于Simulink的永磁同步电机(PMSM)无位置传感器矢量控制与龙伯格观测器设计​

本文介绍了基于Simulink的永磁同步电机(PMSM)无位置传感器矢量控制方法,重点讲解了龙伯格观测器的设计与实现。主要内容包括:1)系统架构与数学推导,通过静止坐标系状态方程和极点配置构建观测器;2)Simulink建模步骤,从电机模型搭建到观测器核心代码实现;3)仿真结果对比分析,显示龙伯格观测器相比滑模观测器具有更好的平滑性和抗噪能力;4)工程部署建议,包括参数在线辨识、低速补偿策略和代码生成优化。该方法实现了全速域无感运行,稳态转速误差小于1%,为低成本高可靠性电机控制提供了有效解决方案。

amy_mhd的博客 161

[leetcode] 1218. Longest Arithmetic Subsequence of Given Difference

Description Given an integer array arr and an integer difference, return the length of the longest subsequence in arr which is an arithmetic sequence such that the difference between adjacent elements in the subsequence equals difference. Example 1: Input:

Learning from the mistakes 242

Unity AssetBundle 之 (入门)简单的资源打包成AB包的方法

Unity AssetBundle 之 (入门)简单的资源打包成AB包的方法 目录 Unity AssetBundle 之 (入门)简单的资源打包成AB包的方法 一、简单介绍 二、实现原理 三、注意事项 四、效果预览 五、实现步骤 六、关键代码 一、简单介绍 Unity中的一些基础知识点。 本节介绍,Asset Bundle 在 Unity中的使用,入门第一篇,如何AssetBundle标记,如何打包成AssetBundle的操作方法,有不对的地方欢迎指正。...

仙魁XAN 1万+

leetcode 1218. Longest Arithmetic Subsequence of Given Difference 解法 python

一.问题描述 Given an integer arrayarrand an integerdifference, return the length of the longest subsequence inarrwhich is an arithmetic sequence such that the difference between adjacent elements in ...

CSerwangjun的博客 583

MATLAB计算各种复合干热指数,如SDHI、DHMI等

MATLAB编程实现各种复合干热指数

WW、forever的博客 5079

点云配准SIFT+SI+RANSAC+ICP

Spin Image(SI)是一种用于点云数据描述的特征描述子,广泛应用于三维点云配准、识别和重建等领域。它能够捕捉点云中的局部几何信息,具有旋转不变性和部分平移不变性等优点,是一种非常强大的特征描述子。Spin Image是一种强大的点云特征描述子,具有旋转不变性、局部几何信息捕捉等优点,适用于点云配准、目标识别和三维重建等多个领域。通过合理选择局部区域、建立参考框架和计算描述子,可以充分利用Spin Image描述点云的特征,从而实现各种三维场景分析和处理任务。

点云兔子的博客 557

【LeetCode】1218. Longest Arithmetic Subsequence of Given Difference

Given an integer array arrand an integer difference, return the length of the longest subsequence in arrwhich is an arithmetic sequence such that the difference between adjacent elements in the subs...

韩旭051的博客 627

海康VisionMaster与西门子PLC1200进行S7通信

通信是连通算法平台和外部设备的重要渠道,在海康VisionMaster算法平台中既支持外部数据的读入也支持数据的写出,当通信构建起来以后既可以把软件处理结果发送给外界,又可以通过外界发送字符来触发相机拍照或者软件运行。 本文以西门子PLC1200作为外部设备为例,讲解海康VisionMaster与西门子PLC1200进行S7通信。......

haier123888的博客 1万+

LeetCode 1218. Longest Arithmetic Subsequence of Given Difference 题解

查阅更多的题解,请点击 GitHub传送门 Problem 1218. Longest Arithmetic Subsequence of Given Difference Solution DP, O(n) time 題目是求最长的等差序列,利用dp求解,假设前i个数我们已经得到解,那么加入第i+1个数x,若x-difference在前i个数中存在,那么更新之前候选序列;若不存在,x可以作为一个...

彼得.攀的blog 446

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

1218. Longest Arithmetic Subsequence of Given Difference

https://leetcode.com/problems/longest-arithmetic-subsequence-of-given-difference/ Given an integer arrayarrand an integerdifference, return the length of the longest subsequence inarrwhich is an arithmetic sequence such that the difference between ad...

Young's Blog 161

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【LeetCode 1218】 Longest Arithmetic Subsequence of Given Difference

题目描述 Given an integer array arr and an integer difference, return the length of the longest subsequence in arr which is an arithmetic sequence such that the difference between adjacent elements in the...

iCode_girl的博客 259

leetcode - 1218. Longest Arithmetic Subsequence of Given Difference

leetcode - 1218

sinat_41679123的博客 402

【Leetcode】1218. Longest Arithmetic Subsequence of Given Difference

题目地址: https://leetcode.com/problems/longest-arithmetic-subsequence-of-given-difference/ 给定一个长nnn数组AAA,和一个数ddd,问AAA中以ddd为公差的等差子序列的最长长度。 设f[x]f[x]f[x]为以xxx结尾的最长等差子序列的最长长度(可以将fff视为一个哈希表)。在遍历AAA的时候时刻维护A[0:i]A[0:i]A[0:i]这个区间的fff对应的信息。当遍历到A[i]A[i]A[i]的时候,A[0:i−1

数学、算法爱好者的博客 573

LeetCode 1218. Longest Arithmetic Subsequence of Given Difference【哈希表,动态规划】中等

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,还会用多种编程语言实现题解,涉及到通用解法时更将归纳总结出相应的算法模板。。

memcpy0的博客 681

LeetCode 1218. Longest Arithmetic Subsequence of Given Difference【动态规划,哈希表,贪心】中等

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,还会用多种编程语言实现题解,涉及到通用解法时更将归纳总结出相应的算法模板。 为了方便在PC上运行调试、分享代码文件,我还建立了相关的仓库:https://github.com/memcpy0/LeetCode-Conqu.

memcpy0的博客 444

LeetCode——1218. 最长定差子序列(Longest Arithmetic Subsequence of Given Difference)[中等]——分析及代码(C++)

LeetCode——1218. 最长定差子序列[Longest Arithmetic Subsequence of Given Difference][中等]——分析及代码[C++]一、题目二、分析及代码1. 动态规划(1)思路(2)代码(3)结果三、其他 一、题目 给你一个整数数组 arr 和一个整数 difference,请你找出并返回 arr 中最长等差子序列的长度,该子序列中相邻元素之间的差等于 difference 。 子序列 是指在不改变其余元素顺序的情况

江南土豆的博客 330

leetcode 1218 Longest Arithmetic Subsequence of Given Difference(DP, 递增子序列)

题目大意: 找出一串序列中的最长等差序列 解题思路: 首先这道题是一道DP题,我们很容易联想到最长递增子序列的题,里面有nlogn和n^2的解法。显然nlogn的方法无法往这里迁移,因为里面用的是lower_bound而不是具有等差序列性质的。在这里我们可以修改n^2的解法来达到nlogn复杂度。在n^2算法里面,我们需要往前面扫描,找到比当前小的元素且lis需要最大,这使我们必须完整的扫完...

FrostMonarch的博客 297

leetcode 1218. Longest Arithmetic Subsequence of Given Difference 最长定差子序列-耗时99

Problem:耗时99%,根据提示用的动态规划,dp[i]是数字对应的符合条件的最大个数,dp[i] = dp[i-difference] + 1,只需要从前向后遍历的,然后求最大值,没有出现过的值都是0,dp[i] = max(dp[i-difference]+1, dp[i]);

邹九的个人博客 145

【DP】LeetCode - 1218. 最长等差数列子数组

  给一个已排序数组,问最长的等差数列子数组多长。这道题和 LIS 基本一模一样,LIS 可以参考 https://blog.csdn.net/Bob__yuan/article/details/99696806。 样例输入: 5 1 2 3 4 5 样例输出: 5   用一个二维 dp 矩阵,dp[i][d] 表示以 i 位置为结尾的,差为 d 的等差数列的长度。 #include &lt...

Bob__yuan的博客 595

Leetcode-1218. Longest Arithmetic Subsequence of Given Difference 最长定差子序列 (DP)

题目 给你一个整数数组 arr 和一个整数 difference,请你找出 arr 中所有相邻元素之间的差等于给定 difference 的等差子序列,并返回其中最长的等差子序列的长度。 链接:https://leetcode.com/problems/longest-arithmetic-subsequence-of-given-difference/ Given an integer array arr and an integer difference, return the length of

JamieLuo的博客 288

最长定差子序列

给你一个整数数组arr和一个整数difference,请你找出arr中所有相邻元素之间的差等于给定difference的等差子序列,并返回其中最长的等差子序列的长度。 示例 1: 输入:arr = [1,2,3,4], difference = 1 输出:4 解释:最长的等差子序列是 [1,2,3,4]。 示例2: 输入:arr = [1,3,5,7], differe...

weixin_41791402的博客 323

【动态规划】子序列问题(二)

【动态规划】子序列问题(二):446. 等差数列划分 II - 子序列、1027. 最长等差数列、873. 最长的斐波那契子序列的长度、1218. 最长定差子序列

tan_run的博客 821
上一篇: leetcode 1493. Longest Subarray of 1‘s After Deleting One Element(删除一个元素后‘1‘ 的最大长度)
下一篇: leetcode 445. Add Two Numbers II(两数相加)
蓝羽飞鸟
博客等级 码龄8年 1万+粉丝 727原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝羽飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值