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

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

這篇具有很好參考價(jià)值的文章主要介紹了代碼隨想錄圖論 第三天 | 130. 被圍繞的區(qū)域 417. 太平洋大西洋水流問題。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

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

一、130. 被圍繞的區(qū)域

題目鏈接:https://leetcode.cn/problems/surrounded-regions/
思路:題目要求沾邊的不動(dòng),只改沒沾邊的,那么可以先dfs遍歷4條邊,把沾邊的O都改成A。然后直接兩層for循環(huán)遍歷整個(gè)數(shù)組,把O該成X,把A改成O。

class Solution {
     public void solve(char[][] board) {
        for (int i = 0; i < board.length; i++) {
            if (board[i][0] == 'O') dfs(board, i, 0);
            if (board[i][board[0].length-1] == 'O') dfs(board, i, board[0].length-1);
        }
        for (int i = 0; i < board[0].length; i++) {
            if (board[0][i] == 'O') dfs(board, 0, i);
            if (board[board.length-1][i] == 'O') dfs(board, board.length-1, i);
        }
        for (int i = 0; i < board.length; i++) {
            for (int j = 0; j < board[0].length; j++) {
                if (board[i][j] == 'O') board[i][j] = 'X';
                if (board[i][j] == 'A') board[i][j] = 'O';
            }
        }
    }

    void dfs(char[][] board, int x, int y) {
        if (x < 0 || x >= board.length || y < 0 || y >= board[0].length || board[x][y] != 'O') {
            return;
        }
        board[x][y] = 'A';
        dfs(board, x-1, y);
        dfs(board, x+1, y);
        dfs(board, x, y-1);
        dfs(board, x, y+1);
    }
}

二、417. 太平洋大西洋水流問題

題目鏈接:https://leetcode.cn/problems/pacific-atlantic-water-flow/
思路:分別從太平洋和大西洋的邊界出發(fā),逆流而上進(jìn)行分開的標(biāo)記,只要某個(gè)格子即被太平洋標(biāo)記又被大西洋標(biāo)記即可收取。文章來源地址http://www.zghlxwxcb.cn/news/detail-725934.html

class Solution {
    boolean[][][] visited;
    int[][] nums = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};
    public List<List<Integer>> pacificAtlantic(int[][] heights) {
        List<List<Integer>> arrayLists = new ArrayList<>();
        visited = new boolean[heights.length][heights[0].length][2];
        for (int i = 0; i < heights.length; i++) {
            visited[i][0][0] = true;
            dfs(heights, i, 0, 0);
            visited[i][heights[0].length-1][1] = true;
            dfs(heights, i, heights[0].length-1, 1);
        }
        for (int i = 0; i < heights[0].length; i++) {
            visited[0][i][0] = true;
            dfs(heights, 0, i, 0);
            visited[heights.length-1][i][1] = true;
            dfs(heights, heights.length-1, i,1);
        }
        for (int i = 0; i < heights.length; i++) {
            for (int j = 0; j < heights[0].length; j++) {
                if (visited[i][j][0] && visited[i][j][1]) {
                    List<Integer> list = new ArrayList<>();
                    list.add(i);
                    list.add(j);
                    arrayLists.add(list);
                }
            }
        }
        return arrayLists;
    }

    void dfs(int[][] heights, int x, int y, int sign) {
        for (int[] num : nums) {
            int nX = x + num[0];
            int nY = y + num[1];
            if (nX < 0 || nX >= heights.length || nY < 0 || nY >= heights[0].length) {
                continue;
            }
            if (visited[nX][nY][sign] || heights[nX][nY] < heights[x][y]) continue;
            visited[nX][nY][sign] = true;
            dfs(heights, nX, nY, sign);
        }
    }
}

到了這里,關(guān)于代碼隨想錄圖論 第三天 | 130. 被圍繞的區(qū)域 417. 太平洋大西洋水流問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(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)文章

  • 代碼隨想錄 第三天||203.移除鏈表元素

    代碼隨想錄 第三天||203.移除鏈表元素

    鏈表與數(shù)組不同,鏈表是映像存儲(chǔ),不像數(shù)組那樣連續(xù)存址,所以對(duì)于鏈表刪除節(jié)點(diǎn)應(yīng)該按照下面的圖示進(jìn)行: 代碼如下: ? ?

    2024年02月12日
    瀏覽(15)
  • 代碼隨想錄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)
  • 代碼隨想錄第三天|鏈表理論基礎(chǔ),LeetCode203.移除鏈表元素, LeetCode707.設(shè)計(jì)鏈表,LeetCode 206.反轉(zhuǎn)鏈表

    代碼隨想錄第三天|鏈表理論基礎(chǔ),LeetCode203.移除鏈表元素, LeetCode707.設(shè)計(jì)鏈表,LeetCode 206.反轉(zhuǎn)鏈表

    鏈表: 鏈表是一種通過指針串聯(lián)在一起的線性結(jié)構(gòu),每一個(gè)節(jié)點(diǎn)由兩部分組成,一個(gè)是數(shù)據(jù)域一個(gè)是指針域(存放指向下一個(gè)節(jié)點(diǎn)的指針),最后一個(gè)節(jié)點(diǎn)的指針域指向null(空指針的意思)。 鏈表的入口節(jié)點(diǎn)稱為鏈表的頭結(jié)點(diǎn)也就是head。 鏈表類型: 1.單鏈表 單鏈表中的指

    2024年02月11日
    瀏覽(27)
  • 代碼隨想錄 圖論

    代碼隨想錄 圖論

    目錄 797.所有可能得路徑? 200.島嶼數(shù)量 695.島嶼的最大面積 1020.飛地的數(shù)量? 130.被圍繞的區(qū)域? 417.太平洋大西洋水流問題? 827.最大人工島 127.單詞接龍? 841.鑰匙和房間 463.島嶼的周長(zhǎng)? 797. 所有可能的路徑 中等 給你一個(gè)有? n ?個(gè)節(jié)點(diǎn)的? 有向無環(huán)圖(DAG) ,請(qǐng)你找出所有從

    2024年04月10日
    瀏覽(23)
  • 代碼隨想錄(番外)圖論1

    代碼隨想錄(番外)圖論1

    1. 深度優(yōu)先搜索理論基礎(chǔ) 2. 所有可能的路徑 3. 廣度優(yōu)先搜索理論基礎(chǔ).md https://programmercarl.com/%E5%9B%BE%E8%AE%BA%E6%B7%B1%E6%90%9C%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html 1. 深度優(yōu)先搜索理論基礎(chǔ) 總結(jié) 同理回溯算法,換湯不換藥 二叉樹遞歸講解 (opens new window)中,給出了遞歸三部曲。 回溯算

    2024年04月28日
    瀏覽(22)
  • 代碼隨想錄(番外)圖論4

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

    2024年04月29日
    瀏覽(15)
  • 代碼隨想錄圖論 第五天| 841.鑰匙和房間 463. 島嶼的周長(zhǎng)

    代碼隨想錄圖論 第五天| 841.鑰匙和房間 一、 841.鑰匙和房間 題目鏈接:https://leetcode.cn/problems/keys-and-rooms/ 思路:鑰匙就是索引,遍歷過就標(biāo)記,每拿到一個(gè)房間的鑰匙,直接for循環(huán)遞歸遍歷,深度優(yōu)先直接拿下。 二、463. 島嶼的周長(zhǎng) 題目鏈接:https://leetcode.cn/problems/island-

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

    代碼隨想錄圖論并查集 第七天 | 685.冗余連接II 一、685.冗余連接II 題目鏈接:https://leetcode.cn/problems/redundant-connection-ii/ 思路:684.冗余連接中是連通且無環(huán)的無向圖可直接使用并查集模板,如果想判斷集合中是否有環(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日
    瀏覽(32)
  • 代碼隨想錄Day42-圖論:力扣第417m、841m、463e題

    題目鏈接 代碼隨想錄文章講解鏈接 方法一: 用時(shí):1h0m58s 思路 直接找哪些點(diǎn)既可以到達(dá)太平洋又可以到達(dá)大西洋比較麻煩,換個(gè)角度,找到太平洋可以逆流而上到達(dá)的點(diǎn),再找到大西洋可以逆流而上到達(dá)的點(diǎn),兩者的交集就是所需要的答案。 用兩個(gè)二維數(shù)組分別記錄太平洋

    2024年02月05日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包