題目連結:
題目意譯:
給定一整數陣列 arr 以及一整數 difference,回傳 arr 中最長的子序列之長度,其中該序列是一個等差序列且滿足子序列中相鄰元素之差值等於 difference。
一個子序列為一個可以藉由從 arr 中刪除若干個(或零個)元素並使剩餘元素的相對順序不變而得到的序列。
限制:
1 ≦ arr.length ≦ 10 ^ 5
-10 ^ 4 ≦ arr[i], difference ≦ 10 ^ 4
範例測資:
範例 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].
解題思維:
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。