leetcode1020. 飛地的數量(dfs)

給出一個二維數組 A,每個單元格為 0(代表海)或 1(代表陸地)。

移動是指在陸地上從一個地方走到另一個地方(朝四個方向之一)或離開網格的邊界。

返回網格中無法在任意次數的移動中離開網格邊界的陸地單元格的數量。

示例 1:

輸入:[[0,0,0,0],[1,0,1,0],[0,1,1,0],[0,0,0,0]]
輸出:3
解釋:
有三個 1 被 0 包圍。一個 1 沒有被包圍,因為它在邊界上。

解題思路

從網格邊界出發,像網格內部進行深度優先搜索,將可到達的地方全部置為水域,最后遍歷矩陣,找出無法到達的陸地。

代碼

class Solution {public int numEnclaves(int[][] A) {int[][] dir=new int[][]{{-1,0},{1,0},{0,1},{0,-1}};for(int i=0;i<A.length;i++)//遍歷邊界{Enclaves(A, dir,i,0);Enclaves(A, dir,i,A[0].length-1);}for(int i=0;i<A[0].length;i++){Enclaves(A, dir,0,i);Enclaves(A, dir,A.length-1,i);}int ans=0;for(int i=1;i<A.length-1;i++)for(int j=1;j<A[0].length-1;j++)if(A[i][j]==1) ans++;return ans;}public void Enclaves(int[][] A,int[][] dir,int x,int y) {if(x<0||y>=A[0].length||y<0||x>=A.length)return ;if(A[x][y]==0) return ;A[x][y]=0;for(int[] d:dir){int nextX=d[0]+x,nextY=d[1]+y;Enclaves(A, dir, nextX, nextY);}}
}

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

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

相關文章

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

未來編程語言的走向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;應該避免在一個可能有值…

angular 漸進_如何創建具有Angular和無頭CMS的漸進式Web應用程序

angular 漸進by Ondrej Chrastina通過Ondrej Chrastina 如何創建具有Angular和無頭CMS的漸進式Web應用程序 (How to create a progressive web app featuring Angular and headless CMS) Have you ever wondered how a headless Content Management System fits in with Progr…

win10不用第三方工具激活的方法

步驟&#xff1a;1、本機上裝個win7旗艦版&#xff0c;這個得拿第三方工具激活一下&#xff0c;當然你如果已經購買了正版更沒問題了。第三方工具推薦那個啥啥loader&#xff0c;記住&#xff1a;chew_wga系列的暴力工具是不行的哦&#xff1b;2、把需要安裝的win10官方安裝鏡像…

CentOS 7 搭建 LAMP

一、安裝httpd 1、yum install httpd -y 2、啟動服務&#xff1a;systemctl start httpd 3、設置開機啟動&#xff1a;systemctl enable 二、安裝mariadb 1、yum groupinstall mariadb 2、啟動服務&#xff1a;systemctl start mariadb 3、設置開機啟動&#xff1a;systemctl e…

quartz教程二

轉載于:https://www.cnblogs.com/mumian2/p/10729901.html

python hookapi_pytest文檔70-Hook鉤子函數完整API總結?

pytest_collectstart(collector: Collector) 收集器開始收集。pytest_make_collect_report(collector: Collector) 執行collector.collect()并返回一個CollectReport。pytest_itemcollected(item: Item) 我們剛剛收集了一個測試項目。pytest_collectreport(report: Coll…

出現字跡模糊跡象_改變跡象:如何使用動態編程解決競爭性編程問題

出現字跡模糊跡象by Sachin Malhotra由Sachin Malhotra 改變跡象&#xff1a;如何使用動態編程解決競爭性編程問題 (Change the signs: how to use dynamic programming to solve a competitive programming question) If you’re a competitive programmer like I am, one of…

leetcode695. 島嶼的最大面積(dfs)

給定一個包含了一些 0 和 1 的非空二維數組 grid 。一個 島嶼 是由一些相鄰的 1 (代表土地) 構成的組合&#xff0c;這里的「相鄰」要求兩個 1 必須在水平或者豎直方向上相鄰。你可以假設 grid 的四個邊緣都被 0&#xff08;代表水&#xff09;包圍著。找到給定的二維數組中最大…