LeetCode75——Day23

文章目录

一、题目

2352. Equal Row and Column Pairs

Given a 0-indexed n x n integer matrix grid, return the number of pairs (ri, cj) such that row ri and column cj are equal.

A row and column pair is considered equal if they contain the same elements in the same order (i.e., an equal array).

Example 1:

Input: grid = \[3,2,1,1,7,6,2,7,7]

Output: 1

Explanation: There is 1 equal row and column pair:

  • (Row 2, Column 1): 2,7,7
    Example 2:

Input: grid = \[3,1,2,2,1,4,4,5,2,4,2,2,2,4,2,2]

Output: 3

Explanation: There are 3 equal row and column pairs:

  • (Row 0, Column 0): 3,1,2,2
  • (Row 2, Column 2): 2,4,2,2
  • (Row 3, Column 2): 2,4,2,2

Constraints:

n == grid.length == gridi.length

1 <= n <= 200

1 <= gridij <= 105

二、题解

使用map保存键值对(vector<int>作为key,该数组的数目作为值),map底层禹unordered_map不同,基于红黑树

cpp 复制代码
class Solution {
public:
    int equalPairs(vector<vector<int>>& grid) {
        int n = grid.size();
        map<vector<int>,int> map;
        //添加行
        for(int i = 0;i < n;i++){
            map[grid[i]]++;
        }
        int res = 0;
        for(int j = 0;j < n;j++){
            //添加列
            vector<int> arr;
            for(int i = 0;i < n;i++){
                arr.push_back(grid[i][j]);
            }
            //如果存在对应的行与其相等,加上对应的行的数目
            if(map.find(arr) != map.end()) res += map[arr];
        }
        return res;
    }
};
相关推荐
小七在进步几秒前
类和对象(五)
java·开发语言·算法
无名猿1 分钟前
std::optional 完全指南:别再用 -1 和 nullptr 表达「没有值」
c++·标准库·现代c++·语法基础
wzdark6 分钟前
算法与数据结构教学的可视化新模式探索4
数据结构
就叫年华吧丶9 分钟前
长文档点目录定位总是不准?一个 content-visibility + 平滑滚动引发的连环坑(Vue3 实战)
前端·javascript·算法·vue
FPGA信号处理16 分钟前
【信号检测与估计】第四节课:非高斯噪声下的 BLUE、极大似然与 EM 算法
人工智能·算法·机器学习
无名猿26 分钟前
nullptr 取代 NULL 和 0:空指针的三种写法和唯一正确解
c++·现代c++·语法基础·踩坑记录
大侠归来30 分钟前
C++ 与 Lua 的协程交互:从原理到实战
c++·lua·交互
无名猿39 分钟前
size_t 与 int 混用陷阱:有符号无符号比较与整数提升
c++·标准库·语法基础·踩坑记录
.道阻且长.42 分钟前
C++ 11:可变参数模板
前端·c++·算法
hzxpaipai1 小时前
企业官网后台怎么设计?从产品分类、参数到资料下载的数据结构
数据结构