Re: [闲聊] 每日LeetCode

楼主: Rushia (みけねこ的鼻屎)   2023-07-15 00:59:55
https://leetcode.com/problems/longest-arithmetic-subsequence-of-given-difference/description/
1218. Longest Arithmetic Subsequence of Given Difference
给你一个阵列 arr 和一个差值 difference ,我们要找出一个最长的子序列满足
所有相邻元素差都等于 difference,如果序列元素数量为一长度为 1,返回最长长度。
Example 1:
Input: arr = [1,2,3,4], difference = 1
Output: 4
Explanation: The longest arithmetic subsequence is [1,2,3,4].
Example 2:
Input: arr = [1,3,5,7], difference = 1
Output: 1
Explanation: The longest arithmetic subsequence is any single element.
Example 3:
Input: arr = [1,5,7,8,5,3,4,2,1], difference = -2
Output: 4
Explanation: The longest arithmetic subsequence is [7,5,3,1].
思路:
1.子序列问题基本上都是动态规划,对于任意元素 ei ,如果他的前面存在一个元素 ej
的差为 difference ,那么他的长度就会是 ej 的长度 + 1,对于 ej 如果他的前面
也存在一个元素 ek 差为 difference 则长度不断累加,直到没有满足的元素时才为0

2.我们可以用一个 Map 保存每个数字上一次访问的长度,这样只要把当前元素减去差值
再去 Map 找值就可以得到最靠近当前元素的等差序列,如果不存在则把当前设为0。
Java Code:
作者: ILoveErr (英梨梨我老婆)   2023-07-15 01:03:00
大师
作者: Che31128 (justjoke)   2023-07-15 01:18:00
晚上的时候停掉

Links booklink

Contact Us: admin [ a t ] ucptt.com