【LeetCode 75】第二十三题(2352)相等行列对

目录

题目:

示例:

分析:

代码+运行结果:


题目:

示例:

分析:

题目很简洁,就是要我们寻找行与列相同的对数。相同行与列不仅是要元素相同,还需要顺序也一样(难度变小了,如果不要求顺序一样的话,还需要单独统计元素以及出现次数,会稍微麻烦一点)

一般要寻找相同的数的时候,我们都会使用map或是set,遇到本题这种需要统计相同的数的数目的时候,我们就需要使用multiset或是map了,因为multiset可以存放相同的键,因此可以使用multiset来进行存放值,再用count来统计相同键值的数量。

首先我们先把矩阵的每一行都存放进multiset中,然后再遍历矩阵的每一列,如果multiset中存放着与之相同的行,那么就将结果添加相同的行数,遍历完成后就可以得出结果了。

代码+运行结果:

cpp 复制代码
class Solution {
public:
    int equalPairs(vector<vector<int>>& grid) {
        int res=0;
        multiset<vector<int>>temp;  //可以存放相同元素的set
        vector<int>t;
        for(vector<int>g:grid) temp.insert(g);  //将每行都先存放进set
        for(int i=0;i<grid[0].size();i++){
            t.clear();
            for(int j=0;j<grid.size();j++) t.push_back(grid[j][i]); //提取出每列元素
            res+=temp.count(t); //加上与列相同的行数,没有则是+=0
        }
        return res;
    }
};
相关推荐
imuliuliang4 小时前
关于数据结构在算法设计中的核心作用解析7
算法
code_pgf5 小时前
C++11 / C++14 / C++17 / C++20 新特性总结
c++·c++20
2401_894915536 小时前
GEO 搜索优化完整源码从零部署:环境配置、集群搭建全流程
开发语言·python·tcp/ip·算法·unity
普通网友7 小时前
共识算法实现:从工作量证明到权益证明的演进
算法·区块链·共识算法
颜x小8 小时前
[C#] C++与c#语法对比
开发语言·c++·c#
ldmd2848 小时前
地图生成算法(噪声篇-Perlin,Simplex,Value noise)
算法·go·地图生成
国科安芯9 小时前
FreeRTOS RISC-V 浮点上下文切换移植:在 IAR 工程中完整保存 FPU 寄存器
java·开发语言·单片机·嵌入式硬件·算法·系统架构·risc-v
小陈phd9 小时前
集成检索介绍
算法
小poop9 小时前
轮转数组:从暴力到最优,一题掌握算法复杂度分析
数据结构·算法·leetcode