2023-07-12力扣今日二题

链接:

[1895. 最大的幻方]

题意:

尺寸k的幻方,需要内部每一行每一列还有两条对角线的和相等

最大幻方尺寸

解:

尺寸很小,50*50,

做一下行、列、对角线的前缀,然后暴力就行

由于幻方肯定存在1成立(即单个格子),所以设置ans默认为1

然后由于要找最大的,所以正在判断的尺寸k设置为从ans开始,低于ans的k没有意义

实际代码:

#include
using namespace std;
typedef long long int ll;

const int Nmax=50;
vector> mp(Nmax , vector(Nmax,0));
int row[Nmax][Nmax],col[Nmax][Nmax];//行前缀 列前缀
int djx1[Nmax][Nmax],djx2[Nmax][Nmax];//对角前缀 
int n,m;

int largestMagicSquare(vector>& grid)
{
    //int n=grid.size(),m=grid[0].size();
    for(int i=0;i>n>>m;
    
    for(int i=0;i>mp[i][j];
        }
    }
    
    int ans=largestMagicSquare(mp);
    cout<

限制:

  • m == grid.length
  • n == grid[i].length
  • 1 <= m, n <= 50
  • 1 <= grid[i][j] <= 106

你可能感兴趣的:(力扣每日一题,leetcode)