1218. 最长定差子序列

1218. 最长定差子序列

  • 原题链接:
  • 完成情况:
  • 解题思路:
  • 参考代码:

原题链接:

1218. 最长定差子序列

https://leetcode.cn/problems/longest-arithmetic-subsequence-of-given-difference/description/

完成情况:

1218. 最长定差子序列_第1张图片

解题思路:

1218. 最长定差子序列_第2张图片

参考代码:

package 西湖算法题解___中等题02;

import java.util.HashMap;
import java.util.Map;

public class __1218最长定差子序列 {
	/**


	 *
	 * @param arr
	 * @param difference
	 * @return
	 */
	public int longestSubsequence(int[] arr, int difference) {
		//dp问题
		int ans = 0;
		Map<Integer,Integer>  dp_longestSubsequence = new HashMap<Integer,Integer>();
		for (int v : arr){
			dp_longestSubsequence.put(v,dp_longestSubsequence.getOrDefault(v - difference,0) +1);   //每一个顺序子串,我都用一个HashMap去存储,遇到符合顺序递减的,我就给它的key++;
			ans = Math.max(ans,dp_longestSubsequence.get(v));
		}
		return ans;
	}
}

你可能感兴趣的:(算法知识,#,LeetCode题解,java学习,算法,java,leetcode,数据结构,分治法)