在做题中学习(62):矩阵区域和

1314. 矩阵区域和 - 力扣(LeetCode)

解法:二维前缀和

思路:读题画图才能理解意思:dun点点的是mat中的一个数,而要求的answer同位置的数 = 以点为中心上下左右延长 k 个单位所围成长方形的和。

因为最后answer中的每一个数都是mat一部分区域的和,所以就想到了二维前缀和模板:

在做题中学习(56):二维前缀和模板-CSDN博客

而对于右边图的情况:显然是无法取到边界以外的值的,所以需要处理边界情况:

细节

1.与二维前缀和模板不同的是,这题的mat下标是从0开始的,所以前缀和数组dp需要+1行1列

就是:填dp[1][1]时,公式的mat值是mat[0][0]的。

           填answer时,是用dp的值,而dp的值是从[1][1]才生效的。

2.dp+1行1列,所以遍历时从1开始,再多遍历一次。

3.填dp值时,公式中有关用到mat的值的下标要-1.

4.填answer值时,可以在公式处每个下标+1,也可以直接在求x1,y1,x2,y2时+1.

class Solution 
{
public:vector<vector<int>> matrixBlockSum(vector<vector<int>>& mat, int k) {int m = mat.size(),n = mat[0].size();vector<vector<int>> dp(m+1,vector<int>(n+1));//dp多加一行,多加一列for(int i = 1;i<=m;i++){for(int j = 1;j<=n;j++){dp[i][j] = dp[i-1][j] + dp[i][j-1] + mat[i-1][j-1] - dp[i-1][j-1];}}//answervector<vector<int>> answer(m,vector<int>(n));for(int i = 0;i<m;i++){for(int j = 0;j<n;j++){int x1,y1,x2,y2;x1 = max(0,i-k) + 1;y1 = max(0,j-k) + 1;x2 = min(m-1,i+k) + 1;y2 = min(n-1,j+k) + 1;answer[i][j] = dp[x2][y2] - dp[x1-1][y2] - dp[x2][y1-1] + dp[x1-1][y1-1]; }}return answer;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/18900.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IPV4地址介绍

4.1IP地址简介 目前的全球因特网所采用的协议族是TCP/IP协议族。IP是TCP/IP协议族中网络层的协议&#xff0c;是TCP/IP协议族的核心协议。IP协议定义了一种地址编码&#xff0c;称为IP地址&#xff0c;它是网络中网络段、网络设备接口、主机的编码&#xff0c;它并不是一种物理…

【 Quartz框架中各个表及其字段含义】

Quartz框架中各个表及其字段含义 Quartz是一个强大的任务调度框架,它通过在数据库中维护多张表来存储和管理任务信息。了解这些表的结构和字段含义,有助于我们更好地理解Quartz的工作原理,并在实际应用中进行有针对性的优化和管理。 想了解Quartz框架其他信息可以参考下面的博…

Linux离线一键安装Docker及docker-compose环境

背景&#xff1a; 在当前软件部署运维环境中由于Docker容器化优势越来越明显&#xff0c;因些被许多公司运维所采用&#xff0c;那首先如何快速安装Docker及docker-compose基础环境就第一时间被人们关注&#xff0c;本人同样在经过多次手工逐条用命令安装的过程&#xff0c;整理…

基于51单片机的温湿度控制系统

一.硬件方案 本设计采用51单片机每2秒钟从DHT11温湿度传感器中读入温度和湿度&#xff0c;在液晶屏上即时显示。液晶屏上同时显示温湿度上限值&#xff0c;该上限值保存外外部EEPROM存储器中&#xff0c;掉电不失&#xff0c;并且可以通过四只按键上调或下调。当温度或湿度值超…

[猫头虎分享21天微信小程序基础入门教程]第21天:小程序的社交分享与消息推送

[猫头虎分享21天微信小程序基础入门教程]第21天&#xff1a;小程序的社交分享与消息推送 第21天&#xff1a;小程序的社交分享与消息推送 &#x1f4f2; 自我介绍 大家好&#xff0c;我是猫头虎&#xff0c;一名全栈软件工程师。今天我们继续微信小程序的学习&#xff0c;重…

vue项目部署二级目录访问时的nginx环境刷新404问题

location / {root D:/bunkerSystem/admin/;index index.html;try_files $uri $uri/ /mixing-admin/index.html;}

MySQL8.0.35简介

MySQL 8.0.35 是 MySQL 数据库管理系统的一个具体版本&#xff0c;该版本包含了多种特性和改进。以下是关于 MySQL 8.0.35 的主要信息&#xff0c;包括其发布背景、性能提升、以及安装和配置的相关内容&#xff1a; 1. 发布背景 MySQL 8.0 系列自 2017 年起开始开发&#xff…

MQ第②讲~保证消息可靠性

前言 上一讲我们讲了MQ实际工作中常见的应用场景&#xff0c;这一节讲一下消息的可靠性&#xff0c;如果对MQ掌握程度比较高的铁子&#xff0c;可以不用看&#xff0c;节省您宝贵的时间。 消息的大致链路 消息从投递到消费需要考虑如下几个问题 生产者的消息是否成功投递到消…

虚拟机改IP地址

使用场景&#xff1a;当你从另一台电脑复制一个VMware虚拟机过来&#xff0c;就是遇到一个问题&#xff0c;虚拟的IP地址不一样&#xff08;比如&#xff0c;一个是192.168.1.3&#xff0c;另一个是192.168.2.4&#xff0c;由于‘1’和‘2’不同&#xff0c;不是同一网段&#…

浅谈路由器转发数据包

当路由器转发数据包时&#xff0c;它会经历一系列步骤&#xff0c;包括接收数据包、路由表查询、以及转发数据包。以下是详细的步骤描述&#xff1a; 1. 接收数据包 以太网帧到达端口&#xff1a;当一个以太网帧到达路由器的某个网络接口&#xff08;端口&#xff09;时&#…

Ubuntu设置静态IP方法

Ubuntu设置静态IP方法 编辑文件&#xff1a;sudo vim /etc/netplan/01-network-manager-all.yaml network: version: 2 renderer: networkd ethernets: ens33: # 替换为你的网络接口名称 (可通过ifconfig查看)addresses: - 192.168.3.198/24 # 设置静态IP地址和子网掩…

20240529瑞芯微官方Toybrick TB-RK3588开发板的Debian11下使用SCP拷贝文件

20240529瑞芯微官方Toybrick TB-RK3588开发板的Debian11下使用SCP拷贝文件 2024/5/29 20:48 1、ADB链接异常。 2、BT打开之后找不到设备&#xff1f; 不清楚&#xff1a;是我拿到的开发板的问题&#xff0c;还是Toybrick/Rockchip官方没有做好。 3、现在最新版本的WINSCP&…

【论文解读】MD-VQA: Multi-Dimensional Quality Assessment for UGC Live Videos

原文下载地址:MD-VQA: Multi-Dimensional Quality Assessment for UGC Live Videos 时间:2023 年 级别:IEEE 作者:上海交通大学、阿里巴巴 摘要: UGC直播视频在捕获过程中常常会受到各种失真的影响,导致视觉质量多样。这些源视频在通过媒体服务器提供商分发给最终用户之…

154.找出出现至少三次的最长特殊字符串|(力扣)

代码解决 class Solution { public:int maximumLength(string s) {// 使用unordered_map来存储每个连续子串出现的次数unordered_map<string, int> mp;string key; // 存储当前的连续子串int ans -1; // 存储最终的答案&#xff0c;如果没有符合条件的子串&#xff0c…

centos系统编译openssl和openssl-lib的rpm安装包

centos系统编译openssl和openssl-lib的rpm安装包 由于漏洞原因需要升级系统的openssl版本到新的版本&#xff0c;但是openssl最新版本需要自己编译生成rpm安装文件&#xff0c;以下是编译步骤&#xff1a; 1、下载对应版本的源码包 可以去openssl github下载&#xff0c;htt…

深度学习常用命令

tensorboard —logdir路径 conda 相关 - conda env list - conda activate 环境名 - conda env export > 111.yaml 导出环境到111.yaml文件 - conda env create -f 111.yaml 根据文件创建环境 - conda list 查看当前环境安装包 - conda remove -n your_env_name --all …

高级数据结构-并查集

例题1&#xff1a; Alice和Bob玩了一个古老的游戏&#xff1a;首先画一个 &#x1d45b;&#x1d45b; 的点阵&#xff08;下图 n3 &#xff09;。 接着&#xff0c;他们两个轮流在相邻的点之间画上红边和蓝边&#xff1a; 直到围成一个封闭的圈&#xff08;面积不必为 1&#…

Cisco网络工程师和网络安全视频教程(完整版)

0001.IT技术包括的技能 0002.课程目标.mp4 0003.Internet示意图.m 0004.局域网和广域网区 0005.服务器客户机mp4 0006.应用层和表示层.m.. 0007.会话层.mp4 0008.传输层.mp4 0009.网络层数据链路层 0010.OSI参考模型和网 0011.普换法排错.mp4 0012.OSI参考模型和网. 0013.网线和…

Mysql 插入或者更新 踩坑

最近在做电商项目&#xff0c;里面存在定时同步的代理商接口&#xff0c;接口xml里面使用了 MySQL的插入或者更新语法&#xff0c;我测试的时候老是发现数据没有更新&#xff0c;点进去才发现这个坑&#xff0c;路过的xdm 可以看下. 我的代码就不贴上来了&#xff0c;写一下具…

如何更改SSH服务器端口以减少蛮力攻击

本周有一个客户&#xff0c;购买Hostease的独立服务器&#xff0c;询问我们的在线客服&#xff0c;如何更改SSH服务器端口以减少蛮力攻击&#xff1f;我们为用户提供相关教程&#xff0c;用户很快解决了遇到的问题。在此&#xff0c;我们分享这个操作教程&#xff0c;希望可以对…