版权声明:本文为博主原创文章,遵循 CC 4.0 BY 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/shiliang97/article/details/103334424
5277. Count Square Submatrices with All Ones
Given a m * n matrix of ones and zeros, return how many square submatrices have all ones.
Example 1:
Input: matrix = [ [0,1,1,1], [1,1,1,1], [0,1,1,1] ] Output: 15 Explanation: There are 10 squares of side 1. There are 4 squares of side 2. There is 1 square of side 3. Total number of squares = 10 + 4 + 1 = 15. Example 2:
Input: matrix = [ [1,0,1], [1,1,0], [1,1,0] ] Output: 7 Explanation: There are 6 squares of side 1. There is 1 square of side 2. Total number of squares = 6 + 1 = 7.
Constraints:
1 <= arr.length <= 300 1 <= arr[0].length <= 300 0 <= arr[i][j] <= 1
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/count-square-submatrices-with-all-ones 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
class Solution {
public:
int countSquares(vector<vector<int>>& matrix) {
int count=0;
int x = matrix.size();
int y = matrix[0].size();
for(int a=0;a<x;a++){
for(int b=0;b<y;b++){
int flag=1;
for(int t=0;b+t<y&&a+t<x;t++){
for(int l=0;l<=t;l++){
flag=flag&matrix[a+t][b+l]&&matrix[a+l][b+t];
}
flag=flag&matrix[a+t][b+t];
if(flag){
//cout<<a<<b<<t<<endl;
count++;
}else{
break;
}
}
}
}
return count;
}
};