题目链接:LeetCode 1582. 二进制矩阵中的特殊位置
题意:
给你一个大小为 rows x cols
的矩阵 mat
,其中 mat[i][j]
是 0
或 1
,请返回 矩阵 mat
中特殊位置的数目 。
特殊位置 定义:如果 mat[i][j] == 1
并且第 i
行和第 j
列中的所有其他元素均为 0
(行和列的下标均 从 0 开始 ),则位置 (i, j)
被称为特殊位置。
示例 1:
输入:mat = [[1,0,0], [0,0,1], [1,0,0]] 输出:1 解释:(1,2) 是一个特殊位置,因为 mat[1][2] == 1 且所处的行和列上所有其他元素都是 0
解题思路:
由于数据小,所以直接暴力枚举
class Solution {
public:
int numSpecial(vector<vector<int>>& mat) {
int lenx = mat.size();
int leny = mat[0].size();
int ans = 0;
for(int i = 0; i < lenx; i++) {
for(int j = 0; j < leny; j++) {
if(mat[i][j] == 1) {
bool res = true;
for(int k = 0; k < leny; k++) {
if(k == j) {
continue;
}
if(mat[i][k] == 1) {
res = false;break;
}
}
for(int k = 0; k < lenx; k++) {
if(k == i) {
continue;
}
if(mat[k][j] == 1) {
res = false;break;
}
}
if(res) {
ans++;
}
}
}
}
return ans;
}
};