leetcode1254. 統計封閉島嶼的數目(dfs)

有一個二維矩陣 grid ,每個位置要么是陸地(記號為 0 )要么是水域(記號為 1 )。

我們從一塊陸地出發,每次可以往上下左右 4 個方向相鄰區域走,能走到的所有陸地區域,我們將其稱為一座「島嶼」。

如果一座島嶼 完全 由水域包圍,即陸地邊緣上下左右所有相鄰區域都是水域,那么我們將其稱為 「封閉島嶼」。

請返回封閉島嶼的數目。

輸入:grid = [[1,1,1,1,1,1,1,0],[1,0,0,0,0,1,1,0],[1,0,1,0,1,1,1,0],[1,0,0,0,0,1,0,1],[1,1,1,1,1,1,1,0]]
輸出:2
解釋:灰色區域的島嶼是封閉島嶼,因為這座島嶼完全被水域包圍(即被 1 區域包圍)。

代碼

class Solution {public int closedIsland(int[][] grid) {int[][] dir=new int[][]{{-1,0},{1,0},{0,1},{0,-1}};//方向int ans=0;for(int i=0;i<grid.length;i++)for (int j=0;j<grid[0].length;j++)if(grid[i][j]==0&&Island(grid,dir,i,j))ans++;//檢查到島嶼return ans;}public boolean Island(int[][] grid,int[][] dir,int x,int y) {//dfsif(x<0||y>=grid[0].length||y<0||x>=grid.length)//出界了不符合return false;if(grid[x][y]==1)return true;boolean res=true;grid[x][y]=1;//置為已經訪問了for(int[] d:dir)//向四個方向走{int nextX=d[0]+x,nextY=d[1]+y;res&=Island(grid,dir,nextX,nextY);}return res;}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/394227.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/394227.shtml
英文地址,請注明出處:http://en.pswp.cn/news/394227.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Dash的快速入門將使您在5分鐘內進入“ Hello World”

by Anuj Pahade由Anuj Pahade Dash的快速入門將使您在5分鐘內進入“ Hello World” (This quick intro to Dash will get you to “Hello World” in under 5 minutes) Dash is an open source library for creating reactive apps in Python. You can create amazing dashboa…

JSON/xml

JSON是什么&#xff1a; JSON(JavaScriptObject Notation, JS 對象簡譜) 是一種輕量級的數據交換格式。它基于ECMAScript(歐洲計算機協會制定的js規范)的一個子集&#xff0c;采用完全獨立于編程語言的文本格式來存儲和表示數據。簡潔和清晰的層次結構使得 JSON 成為理想的數據…

unity開寶箱動畫_[技術博客]Unity3d 動畫控制

在制作游戲時&#xff0c;導入的箱子模型本身自帶動畫。然而&#xff0c;它的動畫是一個從打開到關閉的完整過程&#xff0c;并且沒有給出控制打開關閉的方法。最直接的想法是對該動畫進行拆分&#xff0c;再封裝成不同的動畫狀態&#xff0c;但是不巧的是&#xff0c;這個動畫…

php上傳大文件時,服務器端php.ini文件中需要額外修改的選項

幾個修改點&#xff1a; 1、upload_max_filesize 上傳的最大文件 2、post_max_size 上傳的最大文件 3、max_execution_time 修改為0表示無超時&#xff0c;一直等待 4、max_input_time 參考網址&#xff1a; 在php.ini中把max_input_time 和 max_execution_time設置得特別長…

《中國人工智能學會通訊》——11.21 結束語

11.21 結束語 本文針對交通流的網絡性、異質性和動態性特點&#xff0c;結合當前多任務學習方法的不足提出了相應的解決方案。然而&#xff0c;在實際的應用場景中還存在更多的挑戰&#xff0c;需要進一步深入的研究方向包括&#xff1a;① 高維任務的共同學習方法。在高維數據…

如何把一個軟件嵌入另一個軟件_自動化正在成為一個“軟件”行業

摘要在智能制造時代&#xff0c;自動化行業正在成為一個軟件行業&#xff0c;它正在改變著整個產業的未來&#xff0c;也將為制造業帶來更為廣闊的空間。自動化正在成為一個“軟件”行業&#xff0c;在智能時代&#xff0c;軟件正在成為自動化行業競爭的關鍵。自動化已然成為軟…

leetcode1020. 飛地的數量(dfs)

給出一個二維數組 A&#xff0c;每個單元格為 0&#xff08;代表海&#xff09;或 1&#xff08;代表陸地&#xff09;。 移動是指在陸地上從一個地方走到另一個地方&#xff08;朝四個方向之一&#xff09;或離開網格的邊界。 返回網格中無法在任意次數的移動中離開網格邊界…

未來編程語言的走向_在編程方面我從失敗走向成功的過程以及讓我成功的原因

未來編程語言的走向In the past 10 years, I’ve had three separate experiences trying to learn programming. I’ve wondered why I’ve had such different results. What had caused me to both fail and succeed?在過去的10年中&#xff0c;我有3種不同的嘗試學習編程的…

《中國人工智能學會通訊》——5.16 結 論

5.16 結 論 在過去的 30 年中&#xff0c;移動操作機器人在機器人實驗室受到了廣泛的關注并獲得了比較充分的研究。未來隨著工業領域的自動化需求&#xff0c;移動操作機器人將會深入到生產的各個環節。目前&#xff0c;幾乎所有的移動操作機器人都沒有在實際環境中獲得廣泛及充…

【轉載 | 筆記】IIS無法刪除應該程序池 因為它包含X個應用程序

IIS無法刪除應該程序池 因為它包含X個應用程序 今天代碼主分支在vs2015創建了虛擬目錄http://localhost/webapp指向的物理路徑是E:\webapp 之后新開了一個分支把代碼放在了D:\webapp之后又在vs2015中創建了虛擬目錄 http://localhost/webapp/home 這下就杯具了。在主分支調試的…

python作中國地圖背景氣泡圖_exce表格中怎么制作中國地圖背景數據氣泡圖

exce表格中怎么制作中國地圖背景數據氣泡圖exce表格中怎么制作中國地圖背景數據氣泡圖?excel表格中想要在中國地圖上顯示氣泡來看看地區分布情況&#xff0c;該怎么設置中國地圖氣泡圖表呢?下面我們就來看看詳細的教程&#xff0c;需要的朋友可以參考下1、如圖1所示&#xff…

leetcode979. 在二叉樹中分配硬幣(dfs)

給定一個有 N 個結點的二叉樹的根結點 root&#xff0c;樹中的每個結點上都對應有 node.val 枚硬幣&#xff0c;并且總共有 N 枚硬幣。 在一次移動中&#xff0c;我們可以選擇兩個相鄰的結點&#xff0c;然后將一枚硬幣從其中一個結點移動到另一個結點。(移動可以是從父結點到…

python怎么顯示求余的除數_Python算術運算符及用法詳解

算術運算符也即數學運算符&#xff0c;用來對數字進行數學運算&#xff0c;比如加減乘除。下表列出了 Python 支持所有基本算術運算符。表 1 Python 常用算術運算符運算符說明實例結果加12.45 1527.45-減4.56 - 0.264.3*乘5 * 3.618.0/除法(和數學中的規則一樣)7 / 23.5//整除…

任務完成:我從CNC2018 GetAJob挑戰中學到的東西

什么是CNC2018&#xff1f; (What is CNC2018?) CNC2018 stands for the CodeNewbie Challenge of 2018 put on by CodeNewbie. If you haven’t heard of CodeNewbie, it’s a community and podcast run by Saron Yitbarek. They also host live Twitter Chats on Sundays a…

HTML td 標簽的 colspan 屬性

表格單元橫跨兩列的表格&#xff1a; <table border"1"><tr><th>Month</th><th>Savings</th></tr><tr><td colspan"2">January</td></tr><tr><td colspan"2">Fe…

Kotlin的Lambda表達式以及它們怎樣簡化Android開發(KAD 07)

作者&#xff1a;Antonio Leiva 時間&#xff1a;Jan 5, 2017 原文鏈接&#xff1a;https://antonioleiva.com/lambdas-kotlin/ 由于Lambda表達式允許更簡單的方式建模式函數&#xff0c;所以它是Kotlin和任何其他現代開發語言的最強工具之一。 在Java6中&#xff0c;我們僅能下…

Pyhon進階9---類的繼承

類的繼承 基本概念 定義 格式如下 繼承中的訪問控制 class Animal:__CNOUT 0HEIGHT 0def __init__(self,age,weight,height):self.__CNOUT self.__CNOUT 1self.age ageself.__weight weightself.HEIGHT heightdef eat(self):print({} eat.format(self.__class__.__name__…

python怎么備份列表_python實例:backup 備份

python實例&#xff1a;backup 備份本文來源于《python簡明教程》中的實例1. 提出問題&#xff1a; 我想要一個可以為我的所有重要文件創建備份的程序。2. 分析明確問題&#xff1a;我們如何確定該備份哪些文件&#xff1f;備份保存在哪里&#xff1f;我們怎么樣存儲備份&#…

leetcode1466. 重新規劃路線(dfs)

n 座城市&#xff0c;從 0 到 n-1 編號&#xff0c;其間共有 n-1 條路線。因此&#xff0c;要想在兩座不同城市之間旅行只有唯一一條路線可供選擇&#xff08;路線網形成一顆樹&#xff09;。去年&#xff0c;交通運輸部決定重新規劃路線&#xff0c;以改變交通擁堵的狀況。 路…

mysql數學函數名_Mysql數學函數

所有的數學函數在發生錯誤的情況下&#xff0c;均返回 NULL。-一元減。改變參數的符號&#xff1a;mysql> SELECT - 2;-> -2注意&#xff0c;如果這個操作符被用于一個 BIGINT&#xff0c;返回值也是一個 BIGINT&#xff01;這就意味著&#xff0c;應該避免在一個可能有值…