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

class Solution {

public int[][] matrixBlockSum(int[][] mat, int K) {

int[][] res = new int[mat.length][mat[0].length];

for (int i = 0; i < mat.length; i++) {

for (int j = 0; j < mat[0].length; j++) {

int sum = 0;

for (int r = Math.max(i - K, 0); r <= Math.min(i + K, mat.length - 1); r++) {

for (int c = Math.max(j - K, 0); c <= Math.min(j + K, mat[0].length - 1); c++) {

sum += mat[r][c];

}

}

res[i][j] = sum;

}

}

return res;

}

}

相关推荐
无限进步_3 分钟前
【C语言】函数指针数组:从条件分支到转移表的优雅进化
c语言·开发语言·数据结构·后端·算法·visual studio
Q741_14724 分钟前
C++ 分治 快速选择算法 堆排序 TopK问题 力扣 215. 数组中的第K个最大元素 题解 每日一题
c++·算法·leetcode·分治·1024程序员节·topk问题·快速选择算法
想睡好27 分钟前
express中间件(java拦截器)
java·中间件·express
文火冰糖的硅基工坊28 分钟前
[人工智能-大模型-57]:模型层技术 - 软件开发的不同层面(如底层系统、中间件、应用层等),算法的类型、设计目标和实现方式存在显著差异。
人工智能·算法·中间件
兢兢业业的小白鼠30 分钟前
Java常用中间件整理讲解——Redis,RabbitMQ
java·中间件·java-rabbitmq·1024程序员节
鱼儿也有烦恼33 分钟前
快速学完 LeetCode top 1~50 [特殊字符]
java·算法·leetcode·1024程序员节
独自破碎E35 分钟前
LeetCode 380: O(1) 时间插入、删除和获取随机元素
java·算法·leetcode
信仰_27399324337 分钟前
Mybatis一级缓存
java·缓存·mybatis
Brookty44 分钟前
【算法】前缀和(二)使用
java·学习·算法·前缀和·动态规划·1024程序员节
小范同学_1 小时前
Spring集成WebSocket
java·spring boot·websocket·spring·1024程序员节