classSolution{public:longlongmaxMatrixSum(vector<vector<int>>& matrix){longlong result =0;longlong count =0;longlong num =100010;for(int i =0; i < matrix.size(); i++){for(int j =0; j < matrix.size(); j++){if(matrix[i][j]<0){
matrix[i][j]=-matrix[i][j];
count++;}
result += matrix[i][j];if(num > matrix[i][j]){
num = matrix[i][j];}}}if(count %2==1){
result = result - num *2;}return result;}};/*
偶数个负数可以全部变为正数
奇数个负数只需要找出全矩阵绝对值最小的数将其变负即可
最终答案为绝对值和 - if(奇数个负数) 最小绝对值*2
*/
T2:leetcode.840 矩阵中的幻方
classSolution{public:intcheck(vector<vector<int>>& grid,int x,int y){int sum = grid[x][y]+ grid[x][y+1]+ grid[x][y+2];for(int i =0; i <3;++i){if(sum != grid[x][y+i]+ grid[x+1][y+i]+ grid[x+2][y+i]){return0;}if(sum != grid[x+i][y]+ grid[x+i][y+1]+ grid[x+i][y+2]){return0;}}if(sum != grid[x][y]+ grid[x+1][y+1]+ grid[x+2][y+2]){return0;}if(sum != grid[x+2][y]+ grid[x+1][y+1]+ grid[x][y+2]){return0;}int hash[10]={0,0,0,0,0,0,0,0,0,0};for(int i =0; i <3;++i){for(int j =0; j <3;++j){if(grid[x+i][y+j]>9|| grid[x+i][y+j]==0){return0;}if(++hash[grid[x+i][y+j]]>1){return0;}}}return1;}intnumMagicSquaresInside(vector<vector<int>>& grid){int r = grid.size();int c = grid[0].size();int i, j;int ans =0;for(i =0; i < r -2;++i){for(j =0; j < c -2;++j){
ans +=check(grid, i, j);
cout << ans << endl;}}return ans;}};