【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;
    }
};
相关推荐
姜不吃葱10 分钟前
【力扣热题100】哈希——两数之和
算法·leetcode·哈希算法·力扣热题100
AI4Sci.19 分钟前
在云服务器上基于lora微调Qwen2.5-VL-7b-Instruct模型(下)
人工智能·算法·机器学习·大模型·lora微调·大模型本地部署·qwen2.5-vl-7b
一只小风华~21 分钟前
JavaScript:数组常用操作方法的总结表格
前端·javascript·数据结构·vue.js·算法
mit6.82432 分钟前
[蓝牙通信] 临界区管理 | volatile | 同步(互斥锁与信号量) | handle
c++·物联网
TiAmo zhang1 小时前
深度学习与图像处理 | 基于PaddlePaddle的梯度下降算法实现(线性回归投资预测)
图像处理·深度学习·算法
一匹电信狗1 小时前
【C++】手搓一个STL风格的vector容器
c语言·数据结构·c++·算法·leetcode·stl·visual studio
生信探索1 小时前
SeuratExtend 可视化教程(1):单细胞分析的高颜值绘图指南
算法
小小小白的编程日记1 小时前
C语言中的数据结构--栈和队列(2)
c语言·数据结构
李永奉1 小时前
C语言-数组:数组(定义、初始化、元素的访问、遍历)内存和内存地址、数组的查找算法和排序算法;
c语言·算法·排序算法
星辰大海的精灵2 小时前
深入解析 CopyOnWriteArrayList
java·后端·算法