LeetCode_三维形体的表面积_Math_E

892. 三维形体的表面积

class Solution {
    public int surfaceArea(int[][] grid) {
        int n = grid.length, sum = 0;
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                if (grid[i][j] != 0) {
                    sum += grid[i][j] * 4 + 2;
                }
                // 上
                if (i > 0) {
                    sum -= Math.min(grid[i][j], grid[i - 1][j]);
                }
                // 下
                if (i < n - 1) {
                    sum -= Math.min(grid[i][j], grid[i+1][j]);
                }
                // 左
                if (j > 0) {
                    sum -= Math.min(grid[i][j], grid[i][j-1]);
                }
                // 右
                if (j < n - 1) {
                    sum -= Math.min(grid[i][j], grid[i][j+1]);
                }
            }
        }
        return sum;
    }
}
class Solution {
    public int surfaceArea(int[][] grid) {
        int n = grid.length, sum = 0;
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                if (grid[i][j] == 0) {
                    continue;
                }
                sum += grid[i][j] * 4 + 2;
                // 两倍左边
                if (j > 0) {
                    sum -= Math.min(grid[i][j], grid[i][j-1]) * 2;
                }
                // 两倍上边
                if (i > 0) {
                    sum -= Math.min(grid[i][j], grid[i-1][j]) * 2;
                }
            }
        }
        return sum;
    }
}

 

发布了74 篇原创文章 · 获赞 0 · 访问量 2002
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 1024 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览