首页 > 其他 > 详细

力扣第892题 三维形体的表面积

时间:2020-03-28 22:17:03      阅读:59      评论:0      收藏:0      [点我收藏+]

力扣第892题 三维形体的表面积

技术分享图片

技术分享图片

class Solution {
    public:
    int surfaceArea(vector<vector<int>>& grid) 
    {
        int lenr = grid.size();
        if (lenr == 0)
            return 0;
        int lenc = grid[0].size();
        int dr[4] = { 0, 0, 1, -1 };
        int dc[4] = { -1, 1, 0, 0 };
        int result = 0;
        int r, c;
        for (int i = 0; i < lenr; i++)
        {
            for (int j = 0; j < lenc; j++)
            {
                if (grid[i][j] <= 0)
                    continue;
                result += 2; // 上下两个面
                for (int k = 0; k < 4; k++)
                {
                    r = i + dr[k];
                    c = j + dc[k];
                    

                    if (r < 0 || r >= lenr || c < 0 || c >= lenc)
                        result += grid[i][j];
                    else
                        result += max<int>(grid[i][j] - grid[r][c], 0); // 相邻的可能比当前的高,此时是0
                }
            }
        }
        return result;
    }

};

力扣第892题 三维形体的表面积

原文:https://www.cnblogs.com/woodjay/p/12571197.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!