哈希表 LeetCode 2661. 找出叠涂元素

2661. 找出叠涂元素

给你一个下标从 0 开始的整数数组 arr 和一个 m x n 的整数 矩阵 mat 。arr 和 mat 都包含范围 [1,m * n] 内的 所有 整数。

从下标 0 开始遍历 arr 中的每个下标 i ,并将包含整数 arr[i] 的 mat 单元格涂色。

请你找出 arr 中在 mat 的某一行或某一列上都被涂色且下标最小的元素,并返回其下标 i 。

哈希表 LeetCode 2661. 找出叠涂元素_第1张图片

 遍历arr,判断arr[i]所在行或所在列被涂满,就返回i。

使用哈希表保存arr[i]的行和列,以便在遍历时可用快速取出;

使用两个数组来记录每个行或列被涂的次数,因为所有数字不相等,所以不会重复涂。

class Solution {
public:
    int firstCompleteIndex(vector& arr, vector>& mat) {
        int m = mat.size();
        int n = mat[0].size();
        unordered_mapr;
        unordered_mapc;
        vectorcnt_r(m,0);
        vectorcnt_c(n,0);
        for(int i=0;i

你可能感兴趣的:(散列表,leetcode,算法)