zoukankan      html  css  js  c++  java
  • 840. Magic Squares In Grid ——weekly contest 86

    题目链接:https://leetcode.com/problems/magic-squares-in-grid/description

    attention:注意给定的数字不一定是1-9。

    time:5ms

    本人的解法过于粗糙,看出了中间必须是5,然后比较每行每列每对角线的值是否相等。

    class Solution {
    public:
        int numMagicSquaresInside(vector<vector<int>>& grid) {
            int n = grid.size();
            int res = 0;
            for(int i = 0; i < n - 2; i++){
                for(int j = 0; j < n - 2; j++){
                    int sign = 0;
                    for(int k = i; k < i+3; k++){
                        for(int l = j; l < j+3; l++){
                            if(grid[k][l] > 9 || grid[k][l] < 1){
                                sign = 1;
                                break;
                            }
                        }
                        if(sign){
                            break;
                        }
                    }
                    if(sign){
                        continue;
                    }
                    if(grid[i+1][j+1] == 5){
    
                        if(grid[i][j]+grid[i+2][j+2]==grid[i+2][j]+grid[i][j+2]&&grid[i+2][j]+grid[i][j+2]==grid[i+1][j]+grid[i+1][j+2]&&grid[i+2][j]+grid[i][j+2]==grid[i][j+1]+grid[i+2][j+1]){
                            
                            if(grid[i][j]+grid[i+1][j]+grid[i+2][j]==grid[i][j+2]+grid[i+1][j+2]+grid[i+2][j+2]&&grid[i][j]+grid[i+1][j]+grid[i+2][j]==15){
                                if(grid[i][j]+grid[i][j+1]+grid[i][j+2]==grid[i+2][j]+grid[i+2][j+1]+grid[i+2][j+2]&&grid[i][j]+grid[i][j+1]+grid[i][j+2]==15){
                                    res++;
                                }
                            }
                        }
                    }
                }
            }
            return res;
        }
    };

    下面是看到的别人写的更简单的实现:

    https://leetcode.com/problems/magic-squares-in-grid/discuss/133874/Python-5-and-43816729

  • 相关阅读:
    HDU-5384
    UVALive 5099
    ZOJ-2753
    HUD-5379
    HDU-5360
    HDU-5351
    HDU-5335
    HDU-5317
    HDU-2487
    常用十六进制颜色对照表代码查询
  • 原文地址:https://www.cnblogs.com/jinjin-2018/p/9098125.html
Copyright © 2011-2022 走看看