2718. 查询后矩阵的和
创始人
2025-01-07 08:05:04
0

题目描述:

给你一个整数 n 和一个下标从 0 开始的 二维数组 queries ,其中 queries[i] = [typei, indexi, vali] 。

一开始,给你一个下标从 0 开始的 n x n 矩阵,所有元素均为 0 。每一个查询,你需要执行以下操作之一:

如果 typei == 0 ,将第 indexi 行的元素全部修改为 vali ,覆盖任何之前的值。
如果 typei == 1 ,将第 indexi 列的元素全部修改为 vali ,覆盖任何之前的值。
请你执行完所有查询以后,返回矩阵中所有整数的和。

示例 1:

输入:n = 3, queries = [[0,0,1],[1,2,2],[0,2,3],[1,0,4]]
输出:23
解释:上图展示了每个查询以后矩阵的值。所有操作执行完以后,矩阵元素之和为 23 。
示例 2:

输入:n = 3, queries = [[0,0,4],[0,1,2],[1,0,1],[0,2,3],[1,2,1]]
输出:17
解释:上图展示了每一个查询操作之后的矩阵。所有操作执行完以后,矩阵元素之和为 17 。

解题思路

这道题很巧妙,所以我决定把它分享出来。

这道题正常来讲,读完题第一反应就是直接暴力就能做,就改数呗,然后加和呗。

但是这有点太暴力了,那就优化一下,不改所有的数了,就改每一行的和和每一列的和呗,最后再统计一下总和。但这样似乎好像也不是很好实现。因为我们把每一行和每一列的和记录下来之后,最后算总和的时候是不太好计算的,因为后改变的会覆盖先改变的,所以我们还得知道行和列改变的顺序关系才行。

那考虑到这,注意到加粗的“顺序关系”了么,没错,这就是解题关键。

后改变的会覆盖先改变的,也就是说,我只需要从最后改变的开始往前遍历就行了,最后改变的一定是贡献给最终答案的,那先前改变的就没有作用了。所以无论是行还是列,我们都只关注他是不是最后改变的,我们从后往前遍历的话,也就是关注他是不是第一个出现的,如果是那就更新最终的答案的值,如果不是说明在这个操作后面有另一个操作把它覆盖了,这个操作不起作用。

代码

class Solution { public:     long long matrixSumQueries(int n, vector>& queries) {         long long int ans = 0;         unordered_set vis[2]; //0表示行是否被修改,1表示列是否被修改         int m = queries.size();         for(int i = m - 1 ; i >= 0 ; i--){             auto &q = queries[i];             int type = q[0] , index = q[1] , val = q[2];             if(!vis[type].count(index)){//如果该行/列没有被修改过                 ans += (long long int)(n-vis[type^1].size())*val;//更新答案,该行/列首次发生改变的数要加到最终答案里                 vis[type].insert(index);//标记该行/列已经被修改过             }         }         return ans;     } };  

相关内容

热门资讯

据文件显示!纳祥游戏科技,菠萝... 据文件显示!纳祥游戏科技,菠萝辅助平台(好像是真的软件)-哔哩哔哩纳祥游戏科技能透视中分为三种模型:...
现场直击!琼崖辅助软件,创思维... 现场直击!琼崖辅助软件,创思维激k软件助手(原来是有软件)-哔哩哔哩1、下载好创思维激k软件助手正确...
据文件显示!微信小程序牵手跑得... 据文件显示!微信小程序牵手跑得快辅助,约局吧可以看到别人底牌(好像有挂神器)-哔哩哔哩1、微信小程序...
随着!情怀江湖手游辅助,川娱竞... 随着!情怀江湖手游辅助,川娱竞技血战辅助(一直真的是有器)-哔哩哔哩1、情怀江湖手游辅助公共底牌简单...
连日来!四川皮皮辅助挂,南宁友... 连日来!四川皮皮辅助挂,南宁友乐辅助(切实真的是有下载)-哔哩哔哩四川皮皮辅助挂破解侠是真的助透视。...
透视安卓版"牛总管辅... 您好,牛总管辅助方法这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】很多玩家...
随着!微信超级三加一免费辅助,... 随着!微信超级三加一免费辅助,泉州相约十三水辅助(一直是真的安装)-哔哩哔哩;所有人都在同一条线上,...
截至发稿"网易水润血... 截至发稿"网易水润血战到底辅助"其实是真的有辅助工具(哔哩哔哩)1、用户打开应用后不用登录就可以直接...
备受关注的!悠闲游戏辅助,上品... 备受关注的!悠闲游戏辅助,上品辅助器(确实是真的平台)-哔哩哔哩;1、下载好悠闲游戏辅助正确养号方法...
透视中牌率"科乐填大... 透视中牌率"科乐填大坑攻略"切实真的有辅助神器(哔哩哔哩)透视中牌率"科乐填大坑攻略"切实真的有辅助...