当前位置:网站首页>模拟卷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,如果有错请留言,我看到了会修改的!谢谢!
边栏推荐
- php使用redis实现分布式锁
- JDBC Requset 对应内容及功能介绍
- On weak network test of special test
- [postman] collections - run the imported data file of the configuration
- Coordinatorlayout+nestedscrollview+recyclerview pull up the bottom display is incomplete
- LeetCode 1200. 最小绝对差
- Expose the serial fraudster Liu Qing in the currency circle, and default hundreds of millions of Cheng Laolai
- 数学三大核心领域概述:代数
- GTSAM中李群的運用
- 数学三大核心领域概述:几何
猜你喜欢
随机推荐
Thoughts on data security (Reprint)
曼哈顿距离与曼哈顿矩形-打印回字型矩阵
Manhattan distance sum - print diamond
【Postman】Monitors 监测API可定时周期运行
LeetCode 732. 我的日程安排表 III
[C language] qsort function
自定义指定路由上的Gateway过滤器工厂
Buuctf-[gxyctf2019] no dolls (xiaoyute detailed explanation)
win10无法操作(删除、剪切)文件
Function of activation function
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
Caused by:org. gradle. api. internal. plugins . PluginApplicationException: Failed to apply plugin
技术分享 | 常见接口协议解析
Isam2 operation process
F - true liars (category and search set +dp)
【Postman】Collections-运行配置之导入数据文件
IP day 16 VLAN MPLS configuration
[Thesis code] SML part code reading
Request forwarding and redirection
Nodejs realizes the third-party login of Weibo