2023每日刷题(四十六)
Leetcode—2661.找出叠涂元素
题意解读
题目意思就是,按照arr数组从左到右的顺序遍历各个arr[i],涂抹这个值在矩阵中对应位置的网格,一旦你发现它所在的行或者列满员了,就返回这个i
解题思路
实现代码
class Solution {
public:
int firstCompleteIndex(vector<int>& arr, vector<vector<int>>& mat) {
int m = mat.size(), n = mat[0].size();
unordered_map<int, pair<int, int>> m1;
vector<int> row(m, 0), col(n, 0);
for(int i = 0; i < m; i++) {
for(int j = 0; j < n; j++) {
m1[mat[i][j]] = {i, j};
}
}
int k = 0;
while(k >= 0) {
auto [i, j] = m1[arr[k]];
row[i]++;
col[j]++;
if(row[i] == n || col[j] == m) {
return k;
}
k++;
}
return k;
}
};
运行结果
之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!