国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

代碼隨想錄圖論 第五天| 841.鑰匙和房間 463. 島嶼的周長(zhǎng)

這篇具有很好參考價(jià)值的文章主要介紹了代碼隨想錄圖論 第五天| 841.鑰匙和房間 463. 島嶼的周長(zhǎng)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

代碼隨想錄圖論 第五天| 841.鑰匙和房間

一、 841.鑰匙和房間

題目鏈接:https://leetcode.cn/problems/keys-and-rooms/
思路:鑰匙就是索引,遍歷過(guò)就標(biāo)記,每拿到一個(gè)房間的鑰匙,直接for循環(huán)遞歸遍歷,深度優(yōu)先直接拿下。

class Solution {
    public boolean canVisitAllRooms(List<List<Integer>> rooms) {
        boolean[] visited = new boolean[rooms.size()];
        dfs(visited, rooms, 0);
        for (boolean b : visited) {
            if (b == false) return false;
        }
        return true;
    }
    void dfs(boolean[] visited, List<List<Integer>> rooms, int key) {
        if (visited[key]) return;
        visited[key] = true;
        List<Integer> list = rooms.get(key);
        for (Integer i : list) {
            dfs(visited, rooms, i);
        }
    }
}

二、463. 島嶼的周長(zhǎng)

題目鏈接:https://leetcode.cn/problems/island-perimeter/
思路:常規(guī)思路,遍歷每一個(gè)島嶼并且計(jì)算當(dāng)前點(diǎn)的邊長(zhǎng)就可以。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-738320.html

class Solution {
    int sum = 0;
    public int islandPerimeter(int[][] grid) {
        for (int i = 0; i < grid.length; i++) {
            for (int j = 0; j < grid[0].length; j++) {
                if (grid[i][j] == 1) {
                    dfs(grid, i, j);
                    return sum;
                }
            }
        }
        return sum;
    }
    
    void dfs(int[][] grid, int x, int y) {
        if (x < 0 || x >= grid.length || y < 0 || y >= grid[0].length) {
            return;
        }
        if (grid[x][y] == 2 || grid[x][y] == 0) return;
        grid[x][y] = 2;
        if (x-1 < 0 || grid[x-1][y] == 0) sum++;
        if (x+1 >= grid.length || grid[x+1][y] == 0) sum++;
        if (y-1 < 0 || grid[x][y-1] == 0) sum++;
        if (y+1 >= grid[0].length || grid[x][y+1] == 0) sum++;
        
        dfs(grid, x-1, y);
        dfs(grid, x+1, y);
        dfs(grid, x, y-1);
        dfs(grid, x, y+1);
    }
}

到了這里,關(guān)于代碼隨想錄圖論 第五天| 841.鑰匙和房間 463. 島嶼的周長(zhǎng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 代碼隨想錄(番外)圖論4

    417. 太平洋大西洋水流問(wèn)題 那么我們可以 反過(guò)來(lái)想,從太平洋邊上的節(jié)點(diǎn) 逆流而上,將遍歷過(guò)的節(jié)點(diǎn)都標(biāo)記上。 從大西洋的邊上節(jié)點(diǎn) 逆流而長(zhǎng),將遍歷過(guò)的節(jié)點(diǎn)也標(biāo)記上。 然后兩方都標(biāo)記過(guò)的節(jié)點(diǎn)就是既可以流太平洋也可以流大西洋的節(jié)點(diǎn)。 也就是說(shuō)通過(guò)從兩邊的大洋開(kāi)

    2024年04月29日
    瀏覽(15)
  • 代碼隨想錄第六十五天——尋找圖中是否存在路徑,冗余連接,冗余連接||

    并查集常用來(lái)解決連通性問(wèn)題,主要有兩個(gè)功能: 將兩個(gè)元素添加到一個(gè)集合中 判斷兩個(gè)元素在不在同一個(gè)集合 通過(guò)模板可知,并查集主要有三個(gè)功能: 尋找根節(jié)點(diǎn),函數(shù):find(int u),也就是判斷這個(gè)節(jié)點(diǎn)的祖先節(jié)點(diǎn)是哪個(gè) 將兩個(gè)節(jié)點(diǎn)接入到同一個(gè)集合,函數(shù):join(int u,

    2024年01月16日
    瀏覽(24)
  • 【代碼隨想錄 | Leetcode | 第五天】鏈表 | 移除鏈表元素 | 設(shè)計(jì)鏈表 | 203-707

    【代碼隨想錄 | Leetcode | 第五天】鏈表 | 移除鏈表元素 | 設(shè)計(jì)鏈表 | 203-707

    歡迎來(lái)到小K的Leetcode|代碼隨想錄|專題化專欄,今天將為大家?guī)?lái)移除鏈表元素和設(shè)計(jì)鏈表的分享 ? ?題目鏈接點(diǎn)這里 給你一個(gè)鏈表的頭節(jié)點(diǎn) head 和一個(gè)整數(shù) val ,請(qǐng)你刪除鏈表中所有滿足 Node.val == val 的節(jié)點(diǎn),并返回 新的頭節(jié)點(diǎn) 。 示例 1: 示例 2: 示例 3: 提示: 列表中

    2024年02月16日
    瀏覽(40)
  • 代碼隨想錄圖論并查集 第七天 | 685.冗余連接II

    代碼隨想錄圖論并查集 第七天 | 685.冗余連接II 一、685.冗余連接II 題目鏈接:https://leetcode.cn/problems/redundant-connection-ii/ 思路:684.冗余連接中是連通且無(wú)環(huán)的無(wú)向圖可直接使用并查集模板,如果想判斷集合中是否有環(huán),且那條邊構(gòu)成環(huán),只需要每次加入并查集之前先判斷一下是

    2024年02月06日
    瀏覽(24)
  • 代碼隨想錄圖論 第一天 | 797.所有可能的路徑 200. 島嶼數(shù)量

    代碼隨想錄圖論 第一天 | 797.所有可能的路徑 200. 島嶼數(shù)量 一、797.所有可能的路徑 題目鏈接:https://leetcode.cn/problems/all-paths-from-source-to-target/ 思路:求從0到n-1的所有路徑,終止條件是當(dāng)前節(jié)點(diǎn)為n-1。本題圖的結(jié)構(gòu)是group[][],group[x]表示x節(jié)點(diǎn)所能到達(dá)的所有節(jié)點(diǎn)的集合,深度

    2024年02月08日
    瀏覽(31)
  • 代碼隨想錄圖論 第二天 | 695. 島嶼的最大面積 1020. 飛地的數(shù)量

    代碼隨想錄圖論 第二天 | 695. 島嶼的最大面積 1020. 飛地的數(shù)量 一、695. 島嶼的最大面積 題目鏈接:https://leetcode.cn/problems/max-area-of-island/ 思路:典型的遍歷模板題,我采用深度優(yōu)先,每塊島嶼遞歸遍歷的時(shí)候計(jì)數(shù),遞歸完比較大小記錄最大值。 二、1020. 飛地的數(shù)量 題目鏈接

    2024年02月07日
    瀏覽(20)
  • 代碼隨想錄圖論|130. 被圍繞的區(qū)域 417太平洋大西洋水流問(wèn)題

    代碼隨想錄圖論|130. 被圍繞的區(qū)域 417太平洋大西洋水流問(wèn)題

    **題目:**給你一個(gè) m x n 的矩陣 board ,由若干字符 ‘X’ 和 ‘O’ ,找到所有被 ‘X’ 圍繞的區(qū)域,并將這些區(qū)域里所有的 ‘O’ 用 ‘X’ 填充。 題目鏈接:130. 被圍繞的區(qū)域 解題思路:在飛地的基礎(chǔ)上做改動(dòng),使用一個(gè)棧存儲(chǔ)需要改變的節(jié)點(diǎn) 題目 :有一個(gè) m × n 的矩形島

    2024年02月04日
    瀏覽(20)
  • 代碼隨想錄Day41-圖論:力扣第797m、200m、695m、1020m、130m題

    題目鏈接 代碼隨想錄文章講解鏈接 方法一:DFS 用時(shí):11m43s 思路 時(shí)間復(fù)雜度: O ( n ? 2 n ) O(n cdot 2^n) O ( n ? 2 n ) ,n是節(jié)點(diǎn)個(gè)數(shù),最壞情況每個(gè)節(jié)點(diǎn)都可以去往任意一個(gè)在它后面的節(jié)點(diǎn),那么第i個(gè)節(jié)點(diǎn)去到最后一個(gè)節(jié)點(diǎn)的路徑數(shù)就有 2 n ? i ? 2 2^{n-i-2} 2 n ? i ? 2 ,就是

    2024年02月06日
    瀏覽(24)
  • 代碼隨想錄圖論 第三天 | 130. 被圍繞的區(qū)域 417. 太平洋大西洋水流問(wèn)題

    代碼隨想錄圖論 第三天 | 130. 被圍繞的區(qū)域 417. 太平洋大西洋水流問(wèn)題 一、130. 被圍繞的區(qū)域 題目鏈接:https://leetcode.cn/problems/surrounded-regions/ 思路:題目要求沾邊的不動(dòng),只改沒(méi)沾邊的,那么可以先dfs遍歷4條邊,把沾邊的O都改成A。然后直接兩層for循環(huán)遍歷整個(gè)數(shù)組,把O該

    2024年02月07日
    瀏覽(17)
  • 代碼隨想錄| 圖論04 查并集 ●查并集理論知識(shí) ●1971.尋找圖中是否存在路徑 ●684.冗余連接 ●685.冗余連接II

    代碼隨想錄| 圖論04 查并集 ●查并集理論知識(shí) ●1971.尋找圖中是否存在路徑 ●684.冗余連接 ●685.冗余連接II

    #查并集理論知識(shí) ? 并查集用處:解決連通性問(wèn)題 將兩個(gè)元素添加到一個(gè)集合中。 判斷兩個(gè)元素在不在同一個(gè)集合 思路:將三個(gè)元素A,B,C (分別是數(shù)字)放在同一個(gè)集合,其實(shí)就是將三個(gè)元素連通在一起,如何連通:只需要用一個(gè)一維數(shù)組來(lái)表示,即:father[A] = B,fathe

    2024年02月16日
    瀏覽(21)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包