当前位置:网站首页>模拟卷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,如果有错请留言,我看到了会修改的!谢谢!
边栏推荐
- Coordinatorlayout+nestedscrollview+recyclerview pull up the bottom display is incomplete
- Career advancement Guide: recommended books for people in big factories
- On weak network test of special test
- 【Postman】Monitors 监测API可定时周期运行
- Gtest之TEST宏的用法
- MySQL之基础知识
- [wechat applet] build a development tool environment
- Eigen sparse matrix operation
- GTSAM中ISAM2和IncrementalFixedLagSmoother说明
- B - The Suspects
猜你喜欢
数据库隔离级别
MPLS test report
Overview of three core areas of Mathematics: algebra
The ECU of 21 Audi q5l 45tfsi brushes is upgraded to master special adjustment, and the horsepower is safely and stably increased to 305 horsepower
Isam2 operation process
Buuctf-[bjdctf2020]zjctf, but so (xiaoyute detailed explanation)
Detailed explanation of P problem, NP problem, NPC problem and NP hard problem
职场进阶指南:大厂人必看书籍推荐
P问题、NP问题、NPC问题、NP-hard问题详解
JMeter做接口测试,如何提取登录Cookie
随机推荐
Isam2 and incrementalfixedlagsmooth instructions in gtsam
IPv6 comprehensive experiment
JWT-JSON WEB TOKEN
Commodity price visualization
二维码的前世今生 与 六大测试点梳理
一文揭开,测试外包公司的真 相
【微信小程序】搭建开发工具环境
[postman] the monitors monitoring API can run periodically
Function of activation function
G - Supermarket
[C language] string left rotation
假设检验学习笔记
黑猫带你学UFS协议第18篇:UFS如何配置逻辑单元(LU Management)
Application du Groupe Li dans gtsam
Introduction to promql of # yyds dry goods inventory # Prometheus
Request forwarding and redirection
曼哈顿距离与曼哈顿矩形-打印回字型矩阵
Resttemplate and feign realize token transmission
Database - current read and snapshot read
Function of contenttype