leetcode-892

这题很简单,但是我居然读错题了。grid是个二维数组,取每个点代表每个xy的竖列堆放的个数。

 

func surfaceArea(grid [][]int) int {
    area := 0
    for i, row := range grid {
        for j, level := range row {
            if level > 0 {
                area += level*4 + 2
                if i > 0 {
                    area -= findMin(grid[i-1][j], level) * 2
                }
                if j > 0 {
                    area -= findMin(grid[i][j-1], level) * 2
                }
            }
        }
    }
    return area
}

func findMin(i, j int) int {
    if i > j {
        return j
    }
    return i
}

 

end

posted @ 2020-03-25 23:41  zhangyu63  阅读(117)  评论(0编辑  收藏  举报