当前位置: 首页 > news >正文

LeetCode 子矩阵元素加1

题目地址: https://leetcode.cn/problems/increment-submatrices-by-one/description/
给你一个正整数 n ,表示最初有一个 n x n 、下标从 0 开始的整数矩阵 mat ,矩阵中填满了 0 。

另给你一个二维整数数组 query 。针对每个查询 query[i] = [row1i, col1i, row2i, col2i] ,请你执行下述操作:

找出 左上角 为 (row1i, col1i) 且 右下角 为 (row2i, col2i) 的子矩阵,将子矩阵中的 每个元素 加 1 。也就是给所有满足 row1i <= x <= row2i 和 col1i <= y <= col2i 的 mat[x][y] 加 1 。
返回执行完所有操作后得到的矩阵 mat 。

// 思路: 二维差分func rangeAddQueries(n int, queries [][]int) [][]int {diff := make([][]int, n+2)for i := 0; i < n+2; i++ {diff[i] = make([]int, n+2)}for i := 0; i < len(queries); i++ {add(queries[i][0]+1, queries[i][1]+1, queries[i][2]+1, queries[i][3]+1, 1, diff)}build(diff, n)res := make([][]int, n)for i := 1; i <= n; i++ {res[i-1] = diff[i][1 : n+1]}return res
}func build(diff [][]int, n int) {for i := 1; i <= n; i++ {for j := 1; j <= n; j++ {diff[i][j] += diff[i-1][j] + diff[i][j-1] - diff[i-1][j-1]}}
}func add(a, b, c, d, k int, diff [][]int) {diff[a][b] += kdiff[c+1][b] -= kdiff[a][d+1] -= kdiff[c+1][d+1] += k
}
http://www.dtcms.com/a/610780.html

相关文章:

  • OpenWrt系统上配置batman-adv快速开始与配置详解
  • 西宁网站制作哪里好哪个网站做母婴用品好
  • DataWhale-HelloAgents(第四章:智能体经典范式构建)
  • C语言编译器的工作原理与使用技巧
  • 【RPA典型应用-注册及登录发布信息自动化项目】
  • ajax瀑布流网站模板西双版纳
  • 国外无版权图片网站用vs2010做网站论文
  • C++零基础通关教程第二课
  • 福建网站建建设山东省临沂建设局网站
  • 大模型应用python+Java后端+Vue前端的整合
  • Doxygen使用教程(下载链接,配置过程,语法)
  • Spring Boot Admin 踩坑
  • 企业网站广告周浦网站建设公司
  • 大模型Agent能力增强技术全景
  • 深度智能体-长短期记忆
  • dfs|bfs|定长栈|栈+双指针
  • flutter实践:DropdownButton2使用示例
  • 电商网站订烟平台官网wordpress dux1.4
  • 【信创】软硬件概览
  • 论述网站建设过程中应注意的问题电脑和手机都能浏览的网站开发
  • 扬州市住房和城乡建设网站学科分类目录
  • springboot、Mybatis-plus工程多数据源字段映射不生效
  • 大模型应用开发5-SpringAIalibaba实战
  • 网站子站怎么做的外贸网站建设的好处
  • Go语言包管理/模块管理
  • 写出电子商务网站的建设流程wordpress配置文件是
  • Design Compiler:在GUI界面查询设计对象的属性
  • 海洋网站建设网络章丘做网站
  • (三)分支与合并 - git cherry-pick 命令的使用
  • 开发者实践:AGV 梯控的边缘计算私有部署与数据不出厂解耦