zoukankan      html  css  js  c++  java
  • leetcode_598. 范围求和 II

    给定一个初始元素全部为 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。
    
    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/range-addition-ii
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
    
    暴力超时
    class Solution:
    
        def maxCount(self, m: int, n: int, ops: List[List[int]]) -> int:
            res=[[0]*m for x in range(n)]
            for x in ops:
                for i in range(min(m,x[0])):
                    for j in range(min(n,x[1])):
                        res[i][j]+=1
            ma=0
            for i in range(m):
                for j in range(n):
                    ma=max(res[i][j],ma)
            ans=0
            for i in range(m):
                for j in range(n):
                    if res[i][j]==ma:
                        ans+=1
            return an
    
    超时
    class Solution:
        def maxCount(self, m: int, n: int, ops: List[List[int]]) -> int:
            res=[[0]*m for x in range(n)]
            for x in ops:
                for i in range(min(m,x[0])):
                    for j in range(min(n,x[1])):
                        res[i][j]+=1
    
            ans=0
            for i in range(m):
                for j in range(n):
                    if res[i][j]==res[0][0]:#每次操作都影响res(0,0),所以最大
                        ans+=1
            return ans
    
    class Solution:
        def maxCount(self, m: int, n: int, ops: List[List[int]]) -> int:
            #求交集
            for x in ops:
                m=min(m,x[0])
                n=min(n,x[1])
            return m*n
    
  • 相关阅读:
    mysql数据向Redis快速导入
    jquery.cookie.js使用
    怎么才能在职场中如鱼得水(转)
    内部类(编程思想)
    main方法原来只要放在public static类中就能跑,涨知识了
    匿名内部类--工厂
    Java通过继承外部类来建立该外部类的protected内部类的实例(转)
    监听器的使用例子 ServletContextListener
    Class.getResource()方法的使用
    maven打包资源文件(转)
  • 原文地址:https://www.cnblogs.com/hqzxwm/p/14405736.html
Copyright © 2011-2022 走看看