1074 元素和為目標值的子矩陣數量

2022-09-14 19:36:13 字數 1368 閱讀 1183

給出矩陣matrix和目標值target,返回元素總和等於目標值的非空子矩陣的數量。

子矩陣x1, y1, x2, y2是滿足x1 <= x <= x2y1 <= y <= y2的所有單元matrix[x][y]的集合。

如果(x1, y1, x2, y2)(x1', y1', x2', y2')兩個子矩陣中部分座標不同(如:x1 != x1'),那麼這兩個子矩陣也不同。

/*

* * @param matrix

* @param target

* @return */

var numsubmatrixsumtarget = function

(matrix, target)

res+=findsumtarget(sum,target);}}

function

findsumtarget (sum,k)

map.set(pre, (map.get(pre)||0) + 1)

}return

count;

}return

res;

};let matrix = [[0,1,0],[1,1,1],[0,1,0]], target = 0console.log(matrix, target, numsubmatrixsumtarget(matrix,target))

matrix = [[1,-1],[-1,1]], target = 0console.log(matrix, target, numsubmatrixsumtarget(matrix,target))

matrix = [[904]], target = 0console.log(matrix, target, numsubmatrixsumtarget(matrix,target))

示例 1:

輸入:matrix = [[0,1,0],[1,1,1],[0,1,0]], target = 0

輸出:4

解釋:四個只含 0 的 1x1 子矩陣。

示例 2:

輸入:matrix = [[1,-1],[-1,1]], target = 0

輸出:5

示例 3:

輸入:matrix = [[904]], target = 0

輸出:0

加起來和為目標值的組合

加起來和為目標值的組合 給出一組候選數和乙個目標數,找出候選數中起來和等於target的所有組合。每個數字在乙個組合中只能使用一次。組合中的數字要按遞增排序 結果中不能包含重複的組合 組合之間的排序按照索引從小到大依次比較,小的排在前面,如果索引相同的情況下數值相同,則比較下乙個索引 include...

1755 最接近目標值的子串行和

給你乙個整數陣列 nums 和乙個目標值 goal 你需要從 nums 中選出乙個子串行,使子串行元素總和最接近 goal 也就是說,如果子串行元素和為 sum 你需要 最小化絕對差 abs sum goal 返回 abs sum goal 可能的 最小值 注意,陣列的子串行是通過移除原始陣列中的某...

加起來和為目標值的組合 去重剪枝

思想 一直往深處走,直到找到解或者走不下去為止。結合這道題,加起來和為目標值的組合。首先我們想到肯定要遍歷,結合遍歷到的數加起來是否等去目標值,但問題是乙個陣列中可能有多個組合等於目標值,結果中還不能包含重複組合,所以這道題非常適合用dfs思想來做。我們判斷點在遍歷到的數是否 target,如果大於...