当前位置:网站首页>模拟卷Leetcode【普通】1314. 矩阵区域和
模拟卷Leetcode【普通】1314. 矩阵区域和
2022-07-06 06:15:00 【邂逅模拟卷】
1314. 矩阵区域和
给你一个 m x n 的矩阵 mat 和一个整数 k ,请你返回一个矩阵 answer ,其中每个 answer[i][j] 是所有满足下述条件的元素 mat[r][c] 的和:
i - k <= r <= i + k,
j - k <= c <= j + k 且
(r, c) 在矩阵内。
示例 1:
输入:mat = [[1,2,3],[4,5,6],[7,8,9]], k = 1
输出:[[12,21,16],[27,45,33],[24,39,28]]
示例 2:
输入:mat = [[1,2,3],[4,5,6],[7,8,9]], k = 2
输出:[[45,45,45],[45,45,45],[45,45,45]]
提示:
m == mat.length
n == mat[i].length
1 <= m, n, k <= 100
1 <= mat[i][j] <= 100
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/matrix-block-sum
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
代码:
import numpy as np
from leetcode_python.utils import *
from scipy import signal
class Solution:
def __init__(self):
pass
def matrixBlockSum(self, mat: List[List[int]], k: int) -> List[List[int]]:
data = np.array(mat)
h,w = data.shape
res = [[int(np.sum(data[max(0,i-k):min(h,i+k+1),max(0,j-k):min(w,j+k+1)])) for j in range(w)] for i in range(h)]
return res
def matrixBlockSum_conv(self, mat: List[List[int]], k: int) -> List[List[int]]:
"""但是不知道为什么结果不对,尤其卷积核超过mat的时候"""
data = np.array(mat)
print(data)
nurcle = np.ones((1+k*2,1+k*2)).astype(np.uint32)
# nurcle[k][k]=0
print(nurcle)
res = signal.convolve2d(data, nurcle, boundary='fill', fillvalue=0).astype(np.uint8)
# res = signal.convolve2d(data, nurcle, 'same').astype(np.uint8)
print(res)
return res.tolist()
def test(data_test):
s = Solution()
return s.matrixBlockSum(*data_test)
def test_obj(data_test):
result = [None]
obj = Solution(*data_test[1][0])
for fun, data in zip(data_test[0][1::], data_test[1][1::]):
if data:
res = obj.__getattribute__(fun)(*data)
else:
res = obj.__getattribute__(fun)()
result.append(res)
return result
if __name__ == '__main__':
datas = [
# [[[1,2,3],[4,5,6],[7,8,9]],2],
[[[67,64,78],[99,98,38],[82,46,46],[6,52,55],[55,99,45]],3],
# [[[1,1,1],[1,2,1],[1,1,1],[1,1,1],[1,1,1]],3],
# [[[1,1,1,1,1],[1,2,1,1,1],[1,1,1,1,1],[1,1,1,1,1],[1,1,1,1,1]],5],
]
for data_test in datas:
t0 = time.time()
print('-' * 50)
print('input:', data_test)
print('output:', test(data_test))
print(f'use time:{
time.time() - t0}s')
备注:
GitHub:https://github.com/monijuan/leetcode_python
CSDN汇总:模拟卷Leetcode 题解汇总_卷子的博客-CSDN博客
可以加QQ群交流:1092754609
leetcode_python.utils详见汇总页说明
先刷的题,之后用脚本生成的blog,如果有错请留言,我看到了会修改的!谢谢!
边栏推荐
- MySQL之数据类型
- VINS-Mono: A Robust and Versatile Monocular Visual-Inertial State Estimator
- 通过修改style设置打印页样式
- Manhattan distance and Manhattan rectangle - print back font matrix
- [Thesis code] SML part code reading
- 對數據安全的思考(轉載)
- Application of Lie group in gtsam
- IPv6 comprehensive experiment
- Expose the serial fraudster Liu Qing in the currency circle, and default hundreds of millions of Cheng Laolai
- Linux regularly backs up MySQL database
猜你喜欢
黑猫带你学UFS协议第4篇:UFS协议栈详解
Gtest之TEST宏的用法
[postman] collections - run the imported data file of the configuration
Embedded point test of app
Configuring OSPF GR features for Huawei devices
Application du Groupe Li dans gtsam
MySQL之基础知识
The latest 2022 review of "graph classification research"
Summary of anomaly detection methods
On weak network test of special test
随机推荐
Software test interview questions - Test Type
Expose the serial fraudster Liu Qing in the currency circle, and default hundreds of millions of Cheng Laolai
使用Nacos管理配置
二维码的前世今生 与 六大测试点梳理
ICLR 2022 spotlight | analog transformer: time series anomaly detection method based on correlation difference
P问题、NP问题、NPC问题、NP-hard问题详解
Testing and debugging of multithreaded applications
Interface test: what are the components of the URL in fiddler
异常检测方法总结
PAT(乙级)2022年夏季考试
Sqlmap tutorial (III) practical skills II
Commodity price visualization
数字三角形模型 AcWing 1015. 摘花生
win10无法操作(删除、剪切)文件
Left matching principle of joint index
[postman] dynamic variable (also known as mock function)
isam2运行流程
F - True Liars (种类并查集+DP)
MPLS test report
[postman] test script writing and assertion details