在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ Given an m * n matrix M initialized with all 0's and several update operations. Operations are represented by a 2D array, and each operation is represented by an array with two positive integers a and b, which means M[i][j] should be added by one for all 0 <= i < a and 0 <= j < b. You need to count and return the number of maximum integers in the matrix after performing all the operations. Example 1: Input: m = 3, n = 3 operations = [[2,2],[3,3]] Output: 4 Explanation: Initially, M = [[0, 0, 0], [0, 0, 0], [0, 0, 0]] After performing [2,2], M = [[1, 1, 0], [1, 1, 0], [0, 0, 0]] After performing [3,3], M = [[2, 2, 1], [2, 2, 1], [1, 1, 1]] So the maximum integer in M is 2, and there are four of it in M. So return 4. Note:
给定一个初始元素全部为 0,大小为 m*n 的矩阵 M 以及在 M 上的一系列更新操作。 操作用二维数组表示,其中的每个操作用一个含有两个正整数 a 和 b的数组表示,含义是将所有符合 0 <= i < a 以及 0 <= j < b 的元素 M[i][j] 的值都增加 1。 在执行给定的一系列操作后,你需要返回矩阵中含有最大整数的元素个数。 示例 1: 输入: m = 3, n = 3 operations = [[2,2],[3,3]] 输出: 4 解释: 初始状态, M = [[0, 0, 0], [0, 0, 0], [0, 0, 0]] 执行完操作 [2,2] 后, M = [[1, 1, 0], [1, 1, 0], [0, 0, 0]] 执行完操作 [3,3] 后, M = [[2, 2, 1], [2, 2, 1], [1, 1, 1]] M 中最大的整数是 2, 而且 M 中有4个值为2的元素。因此返回 4。 注意:
Runtime: 44 ms
Memory Usage: 19.1 MB
1 class Solution { 2 func maxCount(_ m: Int, _ n: Int, _ ops: [[Int]]) -> Int { 3 var m = m 4 var n = n 5 for op in ops 6 { 7 m = min(m, op[0]) 8 n = min(n, op[1]) 9 } 10 return m * n 11 } 12 } 56ms 1 class Solution { 2 func maxCount(_ m: Int, _ n: Int, _ ops: [[Int]]) -> Int { 3 var minX = m 4 var minY = n 5 for operation in ops where operation[0] > 0 && operation[1] > 0 { 6 minX = min(minX, operation[0]) 7 minY = min(minY, operation[1]) 8 } 9 10 return minX * minY 11 } 12 } 116ms 1 class Solution { 2 func maxCount(_ m: Int, _ n: Int, _ ops: [[Int]]) -> Int { 3 guard !ops.isEmpty else { 4 return m * n 5 } 6 7 var a = Int.max 8 var b = Int.max 9 for op in ops { 10 a = min(op.first!, a) 11 b = min(op.last!, b) 12 } 13 14 return a * b 15 } 16 }
|
请发表评论