Advertisement
nikunjsoni

1074

Apr 12th, 2021
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.81 KB | None | 0 0
  1. class Solution {
  2. public:
  3.     int numSubmatrixSumTarget(vector<vector<int>>& A, int target) {
  4.         int res = 0, m = A.size(), n = A[0].size();
  5.         for (int i = 0; i < m; i++)
  6.             for (int j = 1; j < n; j++)
  7.                 A[i][j] += A[i][j - 1];
  8.  
  9.         unordered_map<int, int> counter;
  10.         for (int i = 0; i < n; i++) {
  11.             for (int j = i; j < n; j++) {
  12.                 counter = {{0,1}};       // Important, don't miss out this line.
  13.                 int cur = 0;
  14.                 for (int k = 0; k < m; k++) {
  15.                     cur += A[k][j] - (i > 0 ? A[k][i - 1] : 0);
  16.                     res += counter.find(cur - target) != counter.end() ? counter[cur - target] : 0;
  17.                     counter[cur]++;
  18.                 }
  19.             }
  20.         }
  21.         return res;
  22.     }
  23. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement