413. Arithmetic Slices(C++)

    xiaoxiao2021-03-25  90

    题目:

    https://leetcode.com/problems/arithmetic-slices/?tab=Description

    翻译:

    如果数字序列由至少三个元素组成,并且任何两个连续元素之间的差相同,则该数字序列被称为算术。 例如,这些是算术序列:

    1,3,5,7,9 7,7,7,7 3,-1,-5,-9 以下序列不是算术。 1,1,2,5,7

    给出由N个数字组成的零索引数组A. 该阵列的片是任何一对整数(P,Q),使得0 <= P

    思路:

    答案:

    class Solution { public: int numberOfArithmeticSlices(vector<int>& A) { int n = A.size(); if (n < 3) return 0;//最少就是3个一组 vector<int> dp(A.size(), 0); int res = 0; for (int i = 2; i < n; i ++) // { if (A[i] - A[i - 1] == A[i - 1] - A[i - 2]) dp[i] = dp[i - 1] + 1; res += dp[i]; } return res; } };
    转载请注明原文地址: https://ju.6miu.com/read-24807.html

    最新回复(0)