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

lintcode 1840 · 矩阵还原【中等 vip 二维前缀和数组】

题目

https://www.lintcode.com/problem/1840

现有一个n行m列的矩阵
before,对于before里的每一个元素
before[i][j],我们会使用以下算法将其转化为
after[i][j]。现给定after矩阵,请还原出原有的矩阵before。s = 0
for i1: 0 -> ifor j1: 0 -> js = s + before[i1][j1]
after[i][j] = s1≤n,m≤1000样例
样例1:输入:
2
2
[[1,3],[4,10]]
输出: 
[[1,2],[3,4]]
解释:
before:
1 2
3 4after:
1 3
4 10

前置知识

前缀和数组
二维数组前缀和数组

参考答案

public class Solution {/*** @param n: the row of the matrix* @param m: the column of the matrix* @param after: the matrix* @return: restore the matrix*/public int[][] matrixRestoration(int n, int m, int[][] after) {/*after定义其实就是二维数组的前缀和after[i][j]=after[i-1][j]+after[i][j-1]+before[i][j]-after[i-1][j-1]可以推导处于before[i][j]的公式before[i][j]= after[i][j]-after[i-1][j]-after[i][j-1]+after[i-1][j-1]*/int[][] before = new int[n][m];for (int i = 0; i <n ; i++) {for (int j = 0; j <m ; j++) {int cur = after[i][j];if(i> 0){cur-= after[i-1][j];}if(j> 0){cur -= after[i][j-1];}if(i>0 && j>0){cur += after[i-1][j-1];}before[i][j] = cur;}}return before;}
}
http://www.lryc.cn/news/157660.html

相关文章:

  • VMware虚拟机+Centos7 配置静态,动态IP
  • 【C++精华铺】10.STL string模拟实现
  • 微信小程序开发---事件的绑定
  • 基于Hata模型的BPSK调制信号小区覆盖模拟matlab完整程序分享
  • 音视频 ffmpeg视频裁剪
  • Web3数据云OORT推出商用版智能代理构建平台:OORT TDS
  • ChatGPT:革命性的自然语言处理技术
  • 利用frps搭建本地自签名https服务的透传
  • 安卓手机安装Linux然后在其中安装(jdk,MySQL,git)
  • javaee之黑马乐优商城2
  • Qt打开及创建项目,运行程序(1)
  • 八种十倍提升API性能的方式
  • pg_database中的datlastsysoid
  • 【已解决】ognl.PropertyAccessor
  • Pytest系列-快速入门和基础讲解(1)
  • 微信小程序实现连续签到七天
  • 将 Spring Boot 应用程序与 Amazon DocumentDB 集成
  • 前端小案例1:用css实现蒙层效果
  • RTMP流媒体服务器EasyDSS视频点播平台在不关闭防火墙的情况下平稳部署的具体步骤
  • QT中信号与槽机制的介绍,以及信号与槽连接的几种方式
  • 学习笔记——Java入门第二季
  • 计算机视觉的应用13-基于SSD模型的城市道路积水识别的应用项目
  • 【39元linux开发板-ADB远程教程】-[ADB远程终端]-幸狐Luckfox Pico-超越树莓派PICO
  • 900ES1-0100 honeywell 可减少视觉引导应用的整体开发时间
  • Openvslam
  • Windows通过RDP异地远程桌面Ubuntu【内网穿透】
  • js 基础 (ES 模块)
  • K8s 多集群实践思考和探索
  • 德国金融监管机构网站遭遇大规模DDoS攻击后“瘫痪”
  • 关于特殊时期电力行业信息中心运营思路