1144. 范围加法之二

1144. 范围加法之二

中文English

给定一个m * n 的全零矩阵M,以及一些更新操作。

操作由2D数组表示,并且每个操作由具有两个正整数a和b的数组表示,对于一个操作[a,b],这意味着M [i] [j] 会在所有0 <= i <a且0 <= j <b 的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。

注意事项

m和n的范围是[1,40000]。
a的范围是[1,m],b的范围是[1,n]。
操作个数不超过10,000。

输入测试数据 (每行一个参数)如何理解测试数据?
##范围加法之二
class Solution:
    '''
    大致思路:
    1.只需要根据ops来判断多少是共同的部分,给出共同的部分里面的元素个数即可,假设ops 不为[]
    2.两两进行匹配,返回相同的部分[x,y],不停的循环替换
    '''
    def maxCount(self,m,n,ops):
        if ops == []:
            return m*n
        l = ops[0]
        for  i in range(1,len(ops)):
            l = [min(l[0],ops[i][0]),min(l[1],ops[i][1])]
        return l[0]*l[1]

 

posted @ 2020-04-12 14:25  风不再来  阅读(162)  评论(0编辑  收藏  举报