2
public int numSubmatrixSumTarget(int[][] matrix, int target) {3
int m = matrix.length, n = matrix[0].length;5
int[] summedArray = new int[n];7
for (int i = 0; i < m; i++) { // starting row8
Arrays.fill(summedArray, 0);9
for (int j = i; j < m; j++) { // ending row10
for (int k = 0; k < n; k++) { // column11
summedArray[k] += matrix[j][k];13
ans += subarraySum(summedArray, target);19
public int subarraySum(int[] nums, int k) {21
Map<Integer, Integer> map = new HashMap<>();25
for (int num : nums) {28
if (map.containsKey(diff)) {29
count += map.get(diff);31
map.put(sum, map.getOrDefault(sum, 0) + 1);