【leetcode每日刷题】446. Arithmetic Slices II - Subsequence

https://leetcode.com/problems/arithmetic-slices-ii-subsequence/

【leetcode每日刷题】446. Arithmetic Slices II - Subsequence_第1张图片

借助一个map [j] 表示从开始元素 i 到 截止元素 j 间隔为 diff 的数组个数,其中包括数组长度大于等于3和等于2的数组。

class Solution {
    public int numberOfArithmeticSlices(int[] A) {
        int len = A.length;
        long ans = 0;
        Map[] map = new Map[len];
        for(int i=0; i();
            for(int j=0; j Integer.MAX_VALUE){
                    continue;       
                }
                int diff = (int)delta;
                int sum = map[j].getOrDefault(diff, 0);
                int origin = map[i].getOrDefault(diff, 0);
                map[i].put(diff, sum+origin+1);
                ans += sum;
            }
        }
        return (int)ans;
    }
}

 

你可能感兴趣的:(java,leetcode刷题)