题目描述:
示例 1:
示例 2:
题目分析:
- 子序列是非连续的
- 子序列也是等差序列
思路:
代码实现:
class Solution {
public int numberOfArithmeticSlices(int[] nums) {
int len = nums.length;
int result = 0;
int[][] dp = new int[len][len];
for (int i = len - 2; i > 0; i--) {
for (int j = i - 1; j >= 0; j--) {
long diff = (long) nums[i] - nums[j];
int num = 0;
for (int idx = i + 1; idx < len; idx++) {
if ((long) nums[idx] - nums[i] == diff) {
num += dp[i][idx] + 1;
}
}
result += num;
dp[j][i] = num;
}
}
return result;
}
}