Leetcode 413 Solution

This article provides solution to leetcode question 413 (arithmetic-slices)

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

Solution

class Solution {
public:
    int numberOfArithmeticSlices(vector<int>& A) {
        int last_diff = -1;
        int len = 0;
        int total = 0;

        for (int i = 2; i < A.size(); i++)
        {
            if (A[i] - A[i - 1] == A[i - 1] - A[i - 2])
            {
                if (len == 0)
                    len = 3;
                else
                    len++;
            }
            else
            {
                if (len > 2)
                    total += (len - 1) * (len - 2) / 2;
                len = 0;
            }
        }

        if (len > 2)
            total += (len - 1) * (len - 2) / 2;

        return total;
    }
};