2018-08-28 算法-記錄思路-1

倉鼠群的每周題目如下


屏幕快照 2018-08-29 上午9.04.55.png

先上代碼,因為目前正在用swift作主要語言開發(fā),所以用swift來解答

//swift版本
class Solution {
    func surfaceArea(_ grid: [[Int]]) -> Int {
            var res: Int = 0
    for i in 0..<grid.count {
        for v in grid[i] {
            if v == 0 {
                continue
            }
            res += (4*v + 2)
        }
    }
    
    //去重
    for i in 0..<grid.count {
        for j in 0..<grid[i].count {
            if (i == grid.count - 1)  {
                if j == (grid[i].count - 1) {
                    continue
                }
                res -= min(grid[i][j], grid[i][j+1]) * 2
            }
            else {
                if j == (grid[i].count - 1) {
                    res -= min(grid[i][j], grid[i+1][j]) * 2
                    continue
                }
                res -= min(grid[i][j], grid[i][j+1]) * 2
                res -= min(grid[i][j], grid[i+1][j]) * 2
            }
        }
    }
    return res
    }
}

思路大致如下,


屏幕快照 2018-08-29 上午9.14.10.png

1.先計算每個網(wǎng)格摞起來的小立方體的表面積,即grid[i][j]的總表面積。累加計算所有單個網(wǎng)格的總表面積, 本人思路,每個立方體前后左右都有4個,再加上最底層和最頂層的,每個網(wǎng)格總共4v+2
2.再遍歷去重:判斷grid[i][j]和其相鄰的網(wǎng)格表面積,用總表面積減去這些重復(fù)計算的面積,即得到所求值

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容