美文网首页
差分&&前缀和

差分&&前缀和

作者: Talk1sCheap | 来源:发表于2021-03-02 10:37 被阅读0次

前缀和

区间和 记住一个n+1(方便操作) i-1(因为是和相减,所以不能包括i)

一维

// 预处理前缀和数组n+1
  pre[i] = pre[i - 1] + nums[i - 1];


// 计算 [i, j] 结果sum
 sum= pre[j] - pre[i - 1];

二维

  1. pre数组同样变成二维


    image.png
  2. 具体计算的时候就不用初始的matrix了,直接操作pre们


    image.png

    这个图表示缺了最小的那一块,还要加回去

  • 所有变的操作都在小的那儿
class NumMatrix {
    int[][] matrix;
    int[][] pre;
    public NumMatrix(int[][] matrix) {
        this.matrix=matrix;
        int r=matrix.length;
        int c= r == 0 ? 0 : matrix[0].length;
          //构造pre
        pre=new int[r+1][c+1];
        for(int i=1;i<=r;i++){
            for(int j=1;j<=c;j++){
                //原则就是左上
                pre[i][j]=pre[i-1][j]+pre[i][j-1]-pre[i-1][j-1]+matrix[i-1][j-1];
            }
        }
    }
    
    public int sumRegion(int row1, int col1, int row2, int col2) {
        //现在有了pre数组了
        return pre[row2+1][col2+1]+pre[row1][col1]-pre[row1][col2+1]-pre[row2+1][col1];
    }
    
}

相关文章

  • 前缀和 差分

    1.前缀和 原题链接[https://www.acwing.com/problem/content/101/] 这...

  • 差分&&前缀和

    前缀和 区间和 记住一个n+1(方便操作) i-1(因为是和相减,所以不能包括i) 一维 二维 pre数组同样变成...

  • 前缀和与差分

    0X00 一维前缀和 0X01 二维前缀和 0X02 一维差分 一维差分推导: 假设我们有数组 a 现在构造一个数...

  • 差分数组 -- Java版

    差分 已知前缀和 S[n], 构造 b[n] 满足条件: S[i] = b1 + b2 + … + b[n] 差分...

  • 一些用前缀思想解决的题(持续完善)

    有前缀和, 前缀GCD, 前缀奇数个数, 前缀偶数个数, 前缀差, 等等, 都要根据自己的思想来去解决!!!,前缀...

  • Binary Index Tree

    二维差分: 单点修改/询问前缀和: 区间修改/询问区间: 二维树状数组:

  • Leetcode1109. 航班预订统计

    前言 最近leetcode的每日刷题都是前缀和类的,比较有连贯性。没有上来搞个hard打击人。本题用到了差分、前缀...

  • 4月

    算法基础课 排序()二分()高精度()前缀和与差分()双指针算法()位运算(), 离散化()区间合并() 链表与...

  • 二维前缀和和差分

    讲二维之前现得知道什么是前缀和,用例题来了解会更好 题目描述:有个数列a1、a2...an,m 次求任意 [l,r...

  • 二十三、elasticSearch前缀搜索/通配符/ngram分

    1、前缀搜索 前缀越短,要处理的doc越多,性能越差,尽可能用长前缀搜索,前缀搜索会进行全扫,就和数据库中的全表扫...

网友评论

      本文标题:差分&&前缀和

      本文链接:https://www.haomeiwen.com/subject/eoetqltx.html