LeetCode-python 1034.邊框著色

題目鏈接
難度:中等 ??????類型: 數(shù)組、深度優(yōu)先搜索


給出一個(gè)二維整數(shù)網(wǎng)格 grid,網(wǎng)格中的每個(gè)值表示該位置處的網(wǎng)格塊的顏色。

只有當(dāng)兩個(gè)網(wǎng)格塊的顏色相同,而且在四個(gè)方向中任意一個(gè)方向上相鄰時(shí),它們屬于同一連通分量。

連通分量的邊界是指連通分量中的所有與不在分量中的正方形相鄰(四個(gè)方向上)的所有正方形,或者在網(wǎng)格的邊界上(第一行/列或最后一行/列)的所有正方形。

給出位于 (r0, c0) 的網(wǎng)格塊和顏色 color,使用指定顏色 color 為所給網(wǎng)格塊的連通分量的邊界進(jìn)行著色,并返回最終的網(wǎng)格 grid 。

示例1

輸入:grid = [[1,1],[1,2]], r0 = 0, c0 = 0, color = 3
輸出:[[3, 3], [3, 2]]

示例2

輸入:grid = [[1,2,2],[2,3,2]], r0 = 0, c0 = 1, color = 3
輸出:[[1, 3, 3], [2, 3, 3]]

示例3

輸入:grid = [[1,1,1],[1,1,1],[1,1,1]], r0 = 1, c0 = 1, color = 2
輸出:[[2, 2, 2], [2, 1, 2], [2, 2, 2]]

解題思路


只要四個(gè)邊不全,就上色

代碼實(shí)現(xiàn)

class Solution(object):
    def colorBorder(self, grid, r0, c0, color):
        """
        :type grid: List[List[int]]
        :type r0: int
        :type c0: int
        :type color: int
        :rtype: List[List[int]]
        """
        old_color = grid[r0][c0]
        new_color = color
        n, m = len(grid), len(grid[0])
        seen = set()
        def dfs(i,j):
            if (i,j) in seen: return True
            if not (0<=i<n and 0<=j<m and grid[i][j] == old_color):
                return False
            seen.add((i,j))
            if  dfs(i+1, j) + dfs(i-1, j) + dfs(i, j+1) + dfs(i, j-1)<4:
                    
                grid[i][j] = new_color
            return True
                
        dfs(r0, c0)
        return grid

本文鏈接:http://www.itdecent.cn/p/48a5e8c255ae

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

相關(guān)閱讀更多精彩內(nèi)容

  • 題目描述 [ 邊框著色] 給出一個(gè)二維整數(shù)網(wǎng)格 grid,網(wǎng)格中的每個(gè)值表示該位置處的網(wǎng)格塊的顏色。 只有當(dāng)兩個(gè)網(wǎng)...
    一只可愛的檸檬樹閱讀 523評(píng)論 0 0
  • CSS Grid(網(wǎng)格) 布局(又稱為 “Grid(網(wǎng)格)” ),是一個(gè)二維的基于網(wǎng)格的布局系統(tǒng)它的目標(biāo)是完全改變...
    諾CIUM閱讀 1,355評(píng)論 0 3
  • 網(wǎng)格線(Grid Line) 構(gòu)成網(wǎng)格結(jié)構(gòu)的分界線。它們既可以是垂直的(“列網(wǎng)格線(column grid lin...
    晚溪呀閱讀 1,293評(píng)論 0 0
  • 簡(jiǎn)介 CSS網(wǎng)格布局(又名“網(wǎng)格”)是一個(gè)二維的基于網(wǎng)格的布局系統(tǒng),其目的只在于完全改變我們?cè)O(shè)計(jì)基于網(wǎng)格的用戶界面...
    禮知白閱讀 728評(píng)論 0 0
  • “前幾天體檢查出癌癥來(lái)了?!?“???你小時(shí)候沒(méi)打過(guò)疫苗么?” “打過(guò)了。醫(yī)生說(shuō)可能抗癌基因比較少的緣故?!?“那嚴(yán)...
    據(jù)一位不輕易吐槽的喔喔吐槽閱讀 347評(píng)論 0 3

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