most easy to understand solution
int orderOfLargestPlusSign(int n, vector>& mines) {\n        \n        \n         vector> a(n,vector(n,1));\n        int i;\n        \n        for(auto& x:mines
int orderOfLargestPlusSign(int n, vector<vector<int>>& mines) {\n        \n        \n         vector<vector<int>> a(n,vector<int>(n,1));\n        int i;\n        \n        for(auto& x:mines)\n        {\n             a[x[0]][x[1]]=0;\n            \n        }\n           \n        vector<vector<int>> left=a;\n        vector<vector<int>> right=a;\n        vector<vector<int>> up=a;\n        vector<vector<int>> down=a;\n        int m=n;\n        for(int i=0;i<n;i++)\n        {\n             for(int j=1;j<n;j++)\n             {\n                 if(left[i][j]==1)\n                 {\n                     left[i][j] = left[i][j-1]+1;\n                 }\n                 \n             }\n        }\n       \n        \n        for(int i=0;i<n;i++)\n        {\n            for(int j=m-2;j>=0;j--)\n            {\n                if(right[i][j]==1)\n                {\n                    right[i][j]= right[i][j+1]+1;\n                }\n                \n            }\n        }\n         \n        \n        for(int i=1;i<n;i++)\n        {\n            for(int j=0;j<m;j++)\n            {\n                if(up[i][j]==1)\n                {\n                    up[i][j] = up[i-1][j]+1;\n                }\n                \n            }\n        }\n         \n        \n        for(int i=n-2;i>=0;i--)\n        {\n            for(int j=0;j<m;j++)\n            {\n                if(down[i][j]==1)\n                {\n                    down[i][j] = down[i+1][j]+1;\n                }\n                \n            }\n        }\n         \n        \n        int ans=0;\n        for(int i=0;i<n;i++)\n        {\n            for(int j=0;j<m;j++)\n            {\n                ans=max(ans,min({left[i][j],right[i][j],down[i][j],up[i][j]}));\n            }\n        }\n        return ans;\n    }\n};
['Dynamic Programming', 'C']