/*
*算法思想: 暴力
*/
int numMagicSquaresInside(int** arr, int m, int* ns){
int i, j, n=ns[0],x, y, k, l, cnt=0;
int nums[10];
memset(nums, 0, sizeof(nums));
for(i=1; i<m-1; i++){
for(j=1; j<n-1; j++){
//printf("i=%d, j=%d\n", i, j);
if( arr[i][j] != 5
|| arr[i-1][j-1] + arr[i+1][j+1] != 10
|| arr[i][j-1] + arr[i][j+1] != 10
|| arr[i+1][j-1] + arr[i-1][j+1] != 10
|| arr[i-1][j] + arr[i+1][j] != 10
|| arr[i-1][j-1] + arr[i-1][j+1] + arr[i-1][j] != 15
|| arr[i+1][j-1] + arr[i+1][j+1] + arr[i+1][j]!= 15
|| arr[i-1][j-1] + arr[i+1][j-1] + arr[i][j-1] != 15
|| arr[i-1][j+1] + arr[i+1][j+1] + arr[i][j+1] != 15
) continue;
for(k=-1; k<=1; k++){
for(l=-1; l<=1; l++){
x= i+k;
y = j+l;
if(arr[x][y]-1 <0 || arr[x][y]-1>= 10 || nums[arr[x][y]-1]){
goto NEXT;
}else{
nums[arr[x][y]-1]++;
}
}
}
cnt++;
NEXT:
memset(nums, 0, sizeof(nums));
}
}
return cnt;
}
leetcode-840. 矩阵中的幻方-C语言
最新推荐文章于 2023-08-11 08:00:00 发布