LeetCode刷题日记-数组-1476. 子矩形查询
程序员文章站
2022-06-07 23:34:27
...
题目描述
题目链接:https://leetcode-cn.com/problems/subrectangle-queries/
题解
# 暴力解法
class SubrectangleQueries:
def __init__(self, rectangle: List[List[int]]):
self.rectangle = rectangle
def updateSubrectangle(self, row1: int, col1: int, row2: int, col2: int, newValue: int) -> None:
for i in range(row1, row2+1):
for j in range(col1, col2+1):
self.rectangle[i][j] = newValue # 列表索引[i],矩阵索引[i][j]
def getValue(self, row: int, col: int) -> int:
return self.rectangle[row][col]
要注意的地方是矩阵的索引是matrix[i][j],而不是matrix[i,j] (但是numpy中的array支持此操作), 并且双重列表是不支持直接取子矩阵的,但是numpy中的array支持,例如
>> import numpy as np
>> l = [[1,2,3], [4,5,6], [7,8,9]]
>> l[1,2]
>TypeError: list indices must be integers or slices, not tuple
>> l[1:,1:]
>TypeError: list indices must be integers or slices, not tuple ># 如果想取子矩阵应该输出[ [5,6], [8,9]]
>> a = np.array(l)
>> a[1,2]
>6
>> a[1:,1:]
>array([[5, 6],
[8, 9]])
·因此,借助numpy的特性,于是就有了以下解法,非常巧妙!·
上一篇: [hiho1476]-矩形计数-简单容斥
下一篇: FOJ 2025 count