美文网首页
leetcode每日一题 python解法 3月25日

leetcode每日一题 python解法 3月25日

作者: Never肥宅 | 来源:发表于2020-03-25 00:53 被阅读0次

    难度:简单

    题目内容:

    在 N * N 的网格上,我们放置一些 1 * 1 * 1 的立方体。

    每个值 v = grid[i][j] 表示 v 个正方体叠放在对应单元格 (i, j) 上。

    请你返回最终形体的表面积。
    示例 1:

    输入:[[2]]
    输出:10
    示例 2:

    输入:[[1,2],[3,4]]
    输出:34
    示例 3:

    输入:[[1,0],[0,2]]
    输出:16
    示例 4:

    输入:[[1,1,1],[1,0,1],[1,1,1]]
    输出:32
    示例 5:

    输入:[[2,2,2],[2,1,2],[2,2,2]]
    输出:46

    题解:

    逐个遍历平面上的坐标,然后把柱体表面积加上,然后如果有和之前接触的就减去

    代码

    class Solution:
        def surfaceArea(self, grid: List[List[int]]) -> int:
            r = 0
            for i in range(len(grid)):
                for j in range(len(grid[i])):
                    #print("i:",i,"j:",j)
                    if(grid[i][j]>0):
                        r += grid[i][j]*4 + 2
                    #print("r:",r)
                    try:
                        if(i > 0):
                            r -= min(grid[i-1][j],grid[i][j] )* 2
                            #print("i+")
                    except:
                        pass
                    try:
                        if(j > 0):
                            r -= min(grid[i][j-1],grid[i][j] )* 2
                            #print("j+")
                    except:
                        pass
            return r
        
    
    

    相关文章

      网友评论

          本文标题:leetcode每日一题 python解法 3月25日

          本文链接:https://www.haomeiwen.com/subject/slpzyhtx.html