Участник:PinkHedgehog/NOSTSTT

Материал из DISCOPAL
Перейти к: навигация, поиск

https://leetcode.com/problems/number-of-submatrices-that-sum-to-target/

class Solution {
public:
    int numSubmatrixSumTarget(vector<vector<int>>& matrix, int target) {
        int count = 0;
        unordered_map<int,int> accSumHash;
        for (int rowStart = 0; rowStart < matrix.size(); rowStart++)
        {
            vector<int> accSumVec(matrix[0].size(), 0);
            for (int row = rowStart; row < matrix.size(); row++)
            {
                accSumHash.clear();
                accSumHash[0] = 1;
                int accSum = 0;
                for (int col = 0; col < matrix[0].size(); col++)
                {
                    accSum += matrix[row][col];
                    accSumVec[col] += accSum;
 
                    count += accSumHash[accSumVec[col] - target];
                    accSumHash[accSumVec[col]]++;
                }
            }
        }
 
        return count;
    }
};