当前位置: 首页> 健康> 母婴 > 网页设计与制作实验报告总结_域名解析服务器_百度推广怎么运营_靠谱的代运营公司

网页设计与制作实验报告总结_域名解析服务器_百度推广怎么运营_靠谱的代运营公司

时间:2025/7/13 4:27:19来源:https://blog.csdn.net/qq_47876165/article/details/145580458 浏览次数:0次
网页设计与制作实验报告总结_域名解析服务器_百度推广怎么运营_靠谱的代运营公司

矩阵中的幻方

https://leetcode.cn/problems/magic-squares-in-grid/submissions/598584907/

题目:

3 x 3 的幻方是一个填充有 从 1 到 9  的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。

给定一个由整数组成的row x col 的 grid,其中有多少个 3 × 3 的 “幻方” 子矩阵?

注意:虽然幻方只能包含 1 到 9 的数字,但 grid 可以包含最多15的数字。

示例 1:

输入: grid = [[4,3,8,4],[9,5,1,9],[2,7,6,2]
输出: 1
解释: 
下面的子矩阵是一个 3 x 3 的幻方:

而这一个不是:

总的来说,在本示例所给定的矩阵中只有一个 3 x 3 的幻方子矩阵。

示例 2:

输入: grid = [[8]]
输出: 0

提示:

  • row == grid.length
  • col == grid[i].length
  • 1 <= row, col <= 10
  • 0 <= grid[i][j] <= 15
自己的思路和代码:
思路:

        没啥好的办法,直接暴力(遍历开始!!!),从这个题开始转战c++了,直接调用库方便的多,自己写c实现的简直就是一坨啊。

代码:
int numMagicSquaresInside(int** grid, int gridSize, int* gridColSize) {if(gridSize<3) return 0;if(gridColSize[0]<3) return 0;int sum = 0;for(int i=0; i+2<gridSize; i++) {for(int j=0; j+2<gridColSize[i]; j++) {int temp[8];temp[0] = grid[i][j] + grid[i][j+1] + grid[i][j+2];temp[1] = grid[i+1][j] + grid[i+1][j+1] + grid[i+1][j+2];temp[2] = grid[i+2][j] + grid[i+2][j+1] + grid[i+2][j+2];temp[3] = grid[i][j] + grid[i+1][j] + grid[i+2][j];temp[4] = grid[i][j+1] + grid[i+1][j+1] + grid[i+2][j+1];temp[5] = grid[i][j+2] + grid[i+1][j+2] + grid[i+2][j+2];temp[6] = grid[i][j] + grid[i+1][j+1] + grid[i+2][j+2];temp[7] = grid[i+2][j] + grid[i+1][j+1] + grid[i][j+2];bool result = true;for(int k=1; k<8; k++) {if(temp[0] != temp[k]) {result = false;break;}}int idx[10] = {0};if(result) {result = false;int a = grid[i][j];bool standard = false;for(int p=i; p<i+3; p++) {for(int q=j; q<j+3; q++) {if(grid[p][q]>9 || grid[p][q]<1) {standard =true;break;} else {idx[grid[p][q]]++;result = true;// if(a!=grid[p][q]) {//     result=true;// }}}if(standard) {result = false;break;}}}// printf("%d \n", result);if(result) {for(int i=1; i<10; i++) {if(idx[i]!=1) {result = false;}}} if(result) sum++;}}//return sum;// printf("%d\n", gridSize);// for(int i=0; i<gridSize; i++) {//     for(int j=0; j<gridColSize[i]; j++) {//         printf("%d ", grid[i][j]);//     }//     printf("\n");// }return sum;
}

关键字:网页设计与制作实验报告总结_域名解析服务器_百度推广怎么运营_靠谱的代运营公司

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: