598.范围求和 II

57 阅读1分钟

题目:
给你一个 m x n 的矩阵 M ****,初始化时所有的 0 和一个操作数组 op ,其中 ops[i] = [ai, bi] 意味着当所有的 0 <= x < ai 和 0 <= y < bi 时, M[x][y] 应该加 1。

在 执行完所有操作后 ,计算并返回 矩阵中最大整数的个数 。
算法:
思路:每次执行 M[x][y],至少有一个元素+1,所以小于min(M[x][])和min(M[][y])的位置每次都会被+1,找到ops x轴和y轴方向的最小值MinX和MinY即可

func maxCount(m int, n int, ops [][]int) int {
	minX, minY := m, n
	for i := 0; i < len(ops); i ++ {
		minX = min(minX, ops[i][0])
		minY = min(minY, ops[i][1])
	}

	return minX * minY
}

func min(a, b int) int {
	if a < b {
		return a
	}
	return b
}