“1027.最长等差数列”题目
解法一:使用平移方法(使用平移操作区分公差正负)
class Solution {
private int[][] dp;
private int ans;
private int[] A;
private int temp;
public int longestArithSeqLength(int[] A) {
init(A);
for (int i = 1; i < this.A.length; i++) {
for (int j = 0; j < i; j++) {
this.temp = this.A[i] - this.A[j] + 10000;
this.dp[i][this.temp] = this.dp[j][this.temp] + 1;
this.ans = Math.max(this.dp[i][this.temp], this.ans);
}
}
return this.ans;