【題目描述】
給定一個(gè)初始元素全部為 0,大小為 m*n 的矩陣 M 以及在 M 上的一系列更新操作盆均。
操作用二維數(shù)組表示,其中的每個(gè)操作用一個(gè)含有兩個(gè)正整數(shù) a 和 b 的數(shù)組表示,含義是將所有符合 0 <= i < a 以及 0 <= j < b 的元素 M[i][j] 的值都增加 1陷揪。
在執(zhí)行給定的一系列操作后,你需要返回矩陣中含有最大整數(shù)的元素個(gè)數(shù)杂穷。
【示例】
輸入:
m = 3, n = 3
operations = [[2,2],[3,3]]
輸出: 4
解釋:
初始狀態(tài), M =
[[0, 0, 0],
[0, 0, 0],
[0, 0, 0]]
執(zhí)行完操作 [2,2] 后, M =
[[1, 1, 0],
[1, 1, 0],
[0, 0, 0]]
執(zhí)行完操作 [3,3] 后, M =
[[2, 2, 1],
[2, 2, 1],
[1, 1, 1]]
M 中最大的整數(shù)是 2, 而且 M 中有4個(gè)值為2的元素悍缠。因此返回 4。
【注意】
1耐量、m 和 n 的范圍是 [1,40000]飞蚓。
2、a 的范圍是 [1,m]廊蜒,b 的范圍是 [1,n]趴拧。
3、操作數(shù)目不超過 10000山叮。
【題意】
1著榴、題意就是 每次操作都是從[0,0]開始,每操作一次M[0][a]-M[0][b] 都加1
2屁倔、求最大數(shù)的個(gè)數(shù)脑又,也就是求最大重復(fù)數(shù)的個(gè)數(shù)
3、看個(gè)圖 比較直接
代碼實(shí)現(xiàn):
func maxCount(_ m: Int, _ n: Int, _ ops: [[Int]]) -> Int {
if ops.count == 0 {
return m*n
}
var minX = Int.max
var minY = Int.max
for i in 0..<ops.count {
minX = min(minX, ops[i][0])
minY = min(minY, ops[i][1])
}
return minX*minY
}