Descripción Título
de N * N rejilla, que colocó varios cubos de 1 * 1 * 1.
Cada valor v = rejilla [i] [j ] denota el v cubo superpuesta sobre la celda correspondiente (i, j).
Por favor, volver a la superficie corporal final.
Ejemplo 1:
Entrada: [[2]]
de salida: 10
Ejemplo 2:
Entrada: [[1,2], [3,4]]
de salida: 34
Ejemplo 3:
Entrada: [[1,0], [0,2 ]]
de salida: 16
ejemplo 4:
entrada: [[1,1,1], [1,0,1], [1,1,1]]
de salida: 32
ejemplo 5:
entrada: [[2,2,2 ], [2,1,2], [2,2,2]]
de salida: 46
Solución: solución violenta
En el Ejemplo 2, por ejemplo,
En primer lugar, una columna para ver un pilar, cada pilar se compone de: dos superficie inferior (superficie superior / superficie inferior) del cubo han contribuido + toda la zona de superficie de cuatro lados
Entonces, después de que el conjunto reflexivo columna, tenemos que estar unidos a la superficie pierde, el área de superficie de dos columnas que se ajusten a las altas mínimo de dos pilares 2 *
class Solution {
public:
int surfaceArea(vector<vector<int>>& grid) {
int n = grid.size(), area = 0;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
int hi = grid[i][j];
if(hi>0)
{
area += hi*4+2;
area -= i>0?min(hi, grid[i-1][j])*2:0;
area -= j>0?min(hi, grid[i][j-1]) *2:0;
}
}
}
return area;
}
};