首页 > 其他分享 >304. Range Sum Query 2D - Immutable刷题笔记

304. Range Sum Query 2D - Immutable刷题笔记

时间:2023-05-26 22:00:43浏览次数:45  
标签:r1 r2 int Sum 304 self 2D c2 sum


暴力做超时了,参考题解 但是它只考虑了一种情况,事实上可以继续扩充的

class NumMatrix:

    def __init__(self, matrix: List[List[int]]):
        m, n = len(matrix), len(matrix[0])
        self.sum = [[0] * (n + 1) for _ in range(m + 1)]  # sum[i][j] is sum of all elements inside the rectangle [0,0,i,j]
        for r in range(1, m + 1):
            for c in range(1, n + 1):
                self.sum[r][c] = self.sum[r - 1][c] + self.sum[r][c - 1] - self.sum[r - 1][c - 1] + matrix[r - 1][c - 1]

    def sumRegion(self, r1: int, c1: int, r2: int, c2: int) -> int:
        r1, c1, r2, c2 = r1 + 1, c1 + 1, r2 + 1, c2 + 1  # Since our `sum` starts by 1 so we need to increase r1, c1, r2, c2 by 1
        return self.sum[r2][c2] - self.sum[r2][c1 - 1] - self.sum[r1 - 1][c2] + self.sum[r1 - 1][c1 - 1]

# Your NumMatrix object will be instantiated and called as such:
# obj = NumMatrix(matrix)
# param_1 = obj.sumRegion(row1,col1,row2,col2)

304. Range Sum Query 2D - Immutable刷题笔记_职场和发展


标签:r1,r2,int,Sum,304,self,2D,c2,sum
From: https://blog.51cto.com/u_16131692/6359388

相关文章

  • HDU 1024 Max Sum Plus Plus(动态规划)
    传送门题意是给你个数字序列,现在让你把这个序列分成m个连续的子序列,且要求这m个子序列的累加和最大。思路:这道题的题意可以理解为问在序列为末尾时,把序列分为m个子序列这个状态时的最大累加和,那么可以得出这个状态应该是由上一个状态转移得来:(因为dp[i][j]表示数到第j个字符时,前j个......
  • Jmeter函数助手24-longSum
    longSum函数可用于计算两个或多个长值的和。intSum函数参数值的范围在-2147483648到2147483647之间,而longSum函数的参数值范围比intSum的大。Firstlongtoadd:必填,填入整数,不能为小数Secondlongtoadd:必填,填入整数,不能为小数存储结果的变量名(可选) 1、longSum函数传入......
  • Jmeter函数助手23-intSum
    intSum函数可用于计算两个或多个整数值的和。要添加的第一个整数:必填,填入整数,不能为小数要添加的第二个整数:必填,填入整数,不能为小数存储结果的变量名(可选) 1、 intSum函数求多个数的和${__intSum(-3,20,30,40,10,)}2、也可以和传入变量相加${__intSum(-3,40,10,${id},)......
  • RabbitMQ消费消息方法basicConsume
    RabbitMQ-消费消息 Address[]addresses=newAddress[]{newAddress(IP_ADDRESS,PORT)};/***1.建立连接工厂*/ConnectionFactoryconnectionFactory=newConnectionFactory();connectionFactory.setUsername(USER_NAME);......
  • Kafka常用命令之kafka-console-consumer.sh
    ./kafka-console-consumer.sh--bootstrap-serverlocalhost:2181--topictestTopic--from-beginning注意:Kafka从2.2版本开始将kafka-topic.sh脚本中的−−zookeeper参数标注为“过时”,推荐使用−−bootstrap-server参数。若读者依旧使用的是2.1及以下版本,请将下述......
  • #Powerbi 1分钟学会,SUMMARIZE函数,分组汇总并新建表
    今天我们来学习一个新的表函数,SUMMARIZE函数是DAX中的一个函数,它可以根据一列或多列对数据进行分组,并且可以使用指定的表达式为汇总后的表添加新列,形成一张新表。一:基础语法SUMMARIZE函数的语法是:SUMMARIZE (表, 分组列1 [, 分组列2]… [, 名称, 表达式]…)其中:表,是任何......
  • 2D 转换
    1.转换转换(transform)是CSS3中具有颠覆性的特征之一,可以实现元素的位移、旋转、缩放等效果。转换(transform)可以简单理解为变形。移动:translate旋转:rotate缩放:scale1.1二维坐标系2D转换是改变在二维平面上的位置和形状的一种技术。1.22D转换之移动translate2D移动是2D......
  • elasticsearch在启动后出现[transport.netty][solr001] exception caught on transpor
    elasticsearch在启动后出现如下错误:[2019-04-18T09:29:57,850][WARN][o.e.t.n.Netty4Transport ][xHaZmSP]exceptioncaughtontransportlayer[[id:0xe6246f88,L:/127.0.0.1:9300-R:/127.0.0.1:9493]],closingconnectionjava.io.IOException:杩滅▼涓绘満寮鸿揩鍏......
  • Pytest - 断言判断(2) - 断言失败继续执行(pytest-assume)
    断言失败继续执行前言一般情况下我们在使用assert断言失败后,后面的代码就不会继续运行;如果我们想要在断言失败后想要继续运行代码,就不能使用assert进行验证;一个可以允许pytest测试用例中,执行多个失败的断言的插件:多重断言pytest-assume安装pipinstallpytest......
  • x32dbg/x64dbg使用配置点滴
    1、忽略异常,在选项->选项->异常中添加区间设置0~FFFFFFFF全忽略;2.查看模块基址 右键-在内存布局中转到3.类似OD的dd命令哪去了  百度大法了解到x64dbg中使用dump指令,效果如下......