2536. 子矩阵元素加 1

跳转题目

本题暴力可以做,猜到用差分,但是不熟,不知道二维差分怎么用,碰到用差分的题目太少了。

暴力算法:

cpp 复制代码
class Solution {
public:
    vector<vector<int>> rangeAddQueries(int n, vector<vector<int>>& queries) {
    vector<vector<int>> ans(n,vector<int>(n,0));
    for(vector<int> it:queries){
        for(int i=it[0];i<=it[2];i++){
            for(int j=it[1];j<=it[3];j++){
                ans[i][j]++;
            }
        }
    }
    return ans;
    }
};

二维差分:

cpp 复制代码
class Solution {
public:
    vector<vector<int>> rangeAddQueries(int n, vector<vector<int>>& queries) {
    vector<vector<int>> ans(n,vector<int>(n,0));
    vector<vector<int>> diff(n+1,vector<int>(n+1,0));
    for(vector<int> it:queries){
        diff[it[0]][it[1]]++;
        diff[it[2]+1][it[3]+1]++;
        diff[it[0]][it[3]+1]--;
        diff[it[2]+1][it[1]]--;
    }
    for(int i=0;i<n;i++)
        for(int j=1;j<n;j++) diff[i][j]+=diff[i][j-1];
    
    for(int i=1;i<n;i++)
        for(int j=0;j<n;j++) diff[i][j]+=diff[i-1][j];
    
    for(int i=0;i<n;i++)
        for(int j=0;j<n;j++) ans[i][j]=diff[i][j];
    return ans;
    }
};

思路参考:https://leetcode.cn/problems/increment-submatrices-by-one/solutions/2684930/er-wei-chai-fen-qiu-qian-zhui-he-shi-hen-i8g5/

多耗费10mb的空间,速度提高了10倍。

相关推荐
ysh988818 分钟前
PP-OCR:一款实用的超轻量级OCR系统
算法
遇雪长安33 分钟前
差分定位技术:原理、分类与应用场景
算法·分类·数据挖掘·rtk·差分定位
数通Dinner37 分钟前
RSTP 拓扑收敛机制
网络·网络协议·tcp/ip·算法·信息与通信
张人玉2 小时前
C# 常量与变量
java·算法·c#
峙峙峙3 小时前
线性代数--AI数学基础复习
人工智能·线性代数
weixin_446122463 小时前
LinkedList剖析
算法
百年孤独_4 小时前
LeetCode 算法题解:链表与二叉树相关问题 打打卡
算法·leetcode·链表
我爱C编程5 小时前
基于拓扑结构检测的LDPC稀疏校验矩阵高阶环检测算法matlab仿真
算法·matlab·矩阵·ldpc·环检测
算法_小学生5 小时前
LeetCode 75. 颜色分类(荷兰国旗问题)
算法·leetcode·职场和发展
运器1235 小时前
【一起来学AI大模型】算法核心:数组/哈希表/树/排序/动态规划(LeetCode精练)
开发语言·人工智能·python·算法·ai·散列表·ai编程