【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;
    }
};
相关推荐
你好helloworld2 分钟前
滑动窗口最大值
数据结构·算法·leetcode
何曾参静谧32 分钟前
「C/C++」C/C++ 之 变量作用域详解
c语言·开发语言·c++
AI街潜水的八角41 分钟前
基于C++的决策树C4.5机器学习算法(不调包)
c++·算法·决策树·机器学习
白榆maple1 小时前
(蓝桥杯C/C++)——基础算法(下)
算法
JSU_曾是此间年少1 小时前
数据结构——线性表与链表
数据结构·c++·算法
sjsjs111 小时前
【数据结构-合法括号字符串】【hard】【拼多多面试题】力扣32. 最长有效括号
数据结构·leetcode
此生只爱蛋2 小时前
【手撕排序2】快速排序
c语言·c++·算法·排序算法
blammmp2 小时前
Java:数据结构-枚举
java·开发语言·数据结构
何曾参静谧2 小时前
「C/C++」C/C++ 指针篇 之 指针运算
c语言·开发语言·c++
昂子的博客3 小时前
基础数据结构——队列(链表实现)
数据结构