1218 最長定差子串行

2022-05-13 09:15:58 字數 788 閱讀 3601

給你乙個整數陣列 arr 和乙個整數 difference,請你找出 arr 中所有相鄰元素之間的差等於給定 difference 的等差子串行,並返回其中最長的等差子串行的長度。

示例 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 <= 10^5

-10^4 <= arr[i], difference <= 10^4

dp水題

class

solution:

def longestsubsequence(self, arr: list[int], difference: int) ->int:

n=len(arr)

res=1dp={}

for a in

arr:

dp[a]=1

if a-difference in dp://如果在之前的儲存中則更新為

dp[a]=dp[a-difference]+1

return max(dp.values())

Leetcode 1218 最長定差子串行

給你乙個整數陣列 arr 和乙個整數 difference,請你找出 arr 中所有相鄰元素之間的差等於給定 difference 的等差子串行,並返回其中最長的等差子串行的長度。示例 1 輸入 arr 1,2,3,4 difference 1 輸出 4 解釋 最長的等差子串行是 1,2,3,4 示...

LeetCode 1218 最長定差子串行

給你乙個整數陣列 arr 和乙個整數 difference,請你找出 arr 中所有相鄰元素之間的差等於給定 difference 的等差子串行,並返回其中最長的等差子串行的長度。class solution def longestsubsequence self,arr list int diff...

leetcode 1218 最長定差子串行

題目描述 給你乙個整數陣列 arr 和乙個整數 difference,請你找出 arr 中所有相鄰元素之間的差等於給定 difference 的等差子串行,並返回其中最長的等差子串行的長度。解題步驟 解法1 採用最長遞增子串行類似的方法。存在計算超時問題 1 狀態定義 dp i 表示陣列nums 0...