当前位置:网站首页>模拟卷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,如果有错请留言,我看到了会修改的!谢谢!
边栏推荐
- Luogu p1460 [usaco2.1] healthy Holstein cows
- 一文揭开,测试外包公司的真 相
- Interface test: what are the components of the URL in fiddler
- win10无法操作(删除、剪切)文件
- Pat (Grade B) 2022 summer exam
- 多线程应用的测试与调试
- Redis 核心技术与实战之 基本架构:一个键值数据库包含什么?
- Overview of three core areas of Mathematics: algebra
- Aike AI frontier promotion (2.13)
- [postman] collections - run the imported data file of the configuration
猜你喜欢
【C语言】字符串左旋
ESP32 ESP-IDF看门狗TWDT
Construction and integration of Zipkin and sleuth for call chain monitoring
Buuctf-[bjdctf2020]zjctf, but so (xiaoyute detailed explanation)
Embedded point test of app
Expose the serial fraudster Liu Qing in the currency circle, and default hundreds of millions of Cheng Laolai
10m25dcf484c8g (FPGA) amy-6m-0002 BGA GPS module
Hypothesis testing learning notes
selenium源码通读·9 |DesiredCapabilities类分析
What are the test sites for tunnel engineering?
随机推荐
JDBC Requset 对应内容及功能介绍
F - true liars (category and search set +dp)
Construction and integration of Zipkin and sleuth for call chain monitoring
CoordinatorLayout+NestedScrollView+RecyclerView 上拉底部显示不全
全链路压测:构建三大模型
Online and offline problems
Interface test: what are the components of the URL in fiddler
曼哈顿距离和-打印菱形
SQLMAP使用教程(三)实战技巧二
Resttemplate and feign realize token transmission
【eolink】PC客户端安装
php使用redis实现分布式锁
Detailed explanation of BF and KMP
Configuring OSPF GR features for Huawei devices
ESP32 ESP-IDF看门狗TWDT
Caused by:org. gradle. api. internal. plugins . PluginApplicationException: Failed to apply plugin
Sqlmap tutorial (III) practical skills II
【C语言】字符串左旋
G - Supermarket
调用链监控Zipkin、sleuth搭建与整合