代碼隨想錄算法【Day52】

Day51

101. 孤島的總面積

思路

從周邊找到陸地然后 通過 dfs或者bfs 將周邊靠陸地且相鄰的陸地都變成海洋,然后再去重新遍歷地圖 統計此時還剩下的陸地

代碼

#include <iostream>
#include <vector>
using namespace std;
int dir[4][2] = {-1, 0, 0, -1, 1, 0, 0, 1}; // 保存四個方向
int count; // 統計符合題目要求的陸地空格數量
void dfs(vector<vector<int>>& grid, int x, int y) {grid[x][y] = 0;count++;for (int i = 0; i < 4; i++) { // 向四個方向遍歷int nextx = x + dir[i][0];int nexty = y + dir[i][1];// 超過邊界if (nextx < 0 || nextx >= grid.size() || nexty < 0 || nexty >= grid[0].size()) continue;// 不符合條件,不繼續遍歷if (grid[nextx][nexty] == 0) continue;dfs (grid, nextx, nexty);}return;
}int main() {int n, m;cin >> n >> m;vector<vector<int>> grid(n, vector<int>(m, 0));for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {cin >> grid[i][j];}}// 從左側邊,和右側邊 向中間遍歷for (int i = 0; i < n; i++) {if (grid[i][0] == 1) dfs(grid, i, 0);if (grid[i][m - 1] == 1) dfs(grid, i, m - 1);}// 從上邊和下邊 向中間遍歷for (int j = 0; j < m; j++) {if (grid[0][j] == 1) dfs(grid, 0, j);if (grid[n - 1][j] == 1) dfs(grid, n - 1, j);}count = 0;for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {if (grid[i][j] == 1) dfs(grid, i, j);}}cout << count << endl;
}

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

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

相關文章

Python開源項目月排行 2024年12月

#2024年12月2025年1月21日1DeepSeek-Coder-V2一個開源的專家混合&#xff08;MoE&#xff09;代碼語言模型&#xff0c;其在代碼特定任務中的性能可與GPT4-Turbo相媲美。具體而言&#xff0c;DeepSeek-Coder-V2是在DeepSeek-V2的一個中間檢查點上進一步預訓練的&#xff0c;增加…

Resource not found: roslaunchROS path [0]=/opt/ros/noetic/share/ros

解決辦法&#xff1b; cd ~/catkin_ws rm -rf build/ devel/ catkin_make source devel/setup.bash sudo apt-get install ros-noetic-roslaunch 輸入roscore后

.NET + Vue3 的前后端項目在IIS的發布

目錄 一、發布準備 1、安裝 IIS 2、安裝 Windows Hosting Bundle&#xff08;.NET Core 托管捆綁包&#xff09; 3、安裝 IIS URL Rewrite 二、項目發布 1、后端項目發布 2、前端項目發布 3、將項目部署到 IIS中 三、網站配置 1、IP配置 2、防火墻配置 3、跨域配置…

指定定網卡名稱

一、PCIe網卡名稱指定 原理&#xff1a;利用udev規則匹配PCIe設備的硬件特征&#xff08;如總線位置、MAC地址等&#xff09;&#xff0c;覆蓋默認命名規則 4 。 步驟&#xff1a; 獲取設備信息&#xff1a; Bash udevadm info -a -p /sys/class/net/<原設備名> # 如e…

【python】解析自動化腳本文件并按照=測試周期=存儲記錄

【python】連接Jira獲取token以及jira對象 【python】解析自動化腳本文件并按照測試周期存儲記錄 【python】向Jira推送自動化用例執行成功 【python】向Jira測試計劃下&#xff0c;附件中增加html測試報告 將已編寫的自動化測試用例按照jira號解析出來&#xff0c;并按照測試計…

Linux驅動開發之音頻驅動與基礎應用編程

目錄 CODEC芯片 音頻編碼 I2S總線接口 數字音頻接口(DAI) 設備樹配置 ALSA 音頻相關概念 應用程序編寫 運行測試 CODEC芯片 音頻若想被CPU“聽到”&#xff0c;就必須轉換為CPU能夠“聽懂”的語言&#xff0c;即二進制數據的0和1。在信號處理領域&#xff0c;聲音是模…

在 Java 中解析 JSON 數據

例子解析以下JSON數據 {"code":0,"msg":"成功","data": [{ "host":"1068222.com", "port":"", "m_token":"490e20e70e7de5f21a24b14c12a393f6", "categ…

python——集合(一)

文章目錄 集合 set創建集合訪問集合項in關鍵字添加集合元素刪除集合元素復制集合使用操作符對集合進行交集、并集、差集、對稱差集使用方法對集合進行交集、并集、差集、對稱差集子集和超集 frozenset 凍結集合&#xff1f; 不可變集合&#xff01; 集合 set 什么是集合&#…

DeepSeek 與網絡安全:AI 在網絡安全領域的應用與挑戰

&#x1f4dd;個人主頁&#x1f339;&#xff1a;一ge科研小菜雞-CSDN博客 &#x1f339;&#x1f339;期待您的關注 &#x1f339;&#x1f339; 1. 引言 在當今數字化時代&#xff0c;網絡安全已成為國家、企業和個人面臨的重要挑戰。從傳統的病毒、木馬攻擊&#xff0c;到高…

【Blender】二、建模篇--05,陣列修改器與晶格形變

陣列修改器是bender里面一個比較常用的修改器,所以我們單獨開口來講,我們會先從幾片樹葉出發,然后我們用陣列修改器把這幾片樹葉變成這樣的造型和這樣的造型。這兩個造型分別就代表著陣列修改器最常用的兩種偏移方法,我們現在就開始我們先來做幾個樹葉。 1.樹葉建模 首先…

【Python 專題】數據結構 樹

LeetCode 題目104. 二叉樹的最大深度(gif 圖解)方法一:后序遍歷(DFS)方法二:層序遍歷(BFS)872. 葉子相似的樹(DFS 遍歷)1448. 統計二叉樹中好節點的數目(DFS 遍歷)437. 路徑總和 III(前綴和 + DFS 回溯)1372. 二叉樹中的最長交錯路徑(DFS)236. 二叉樹的最近公共…

Linux下基本指令(4)

Linux權限的概念 Linux下有兩種用戶&#xff1a;超級用戶&#xff08;root&#xff09;、普通用戶。 超級用戶&#xff1a;可以再linux系統下做任何事情&#xff0c;不受限制 普通用戶&#xff1a;在linux下做有限的事情。 超級用戶的命令提示符是“#”&#xff0c;普通用戶…

ubuntu部署小筆記-采坑

ubuntu部署小筆記 搭建前端控制端后端前端nginx反向代理使用ubuntu部署nextjs項目問題一 如何訪問端口號配置后臺運行該進程pm2 問題二 包體過大生產環境下所需文件 問題三 部署在vercel時出現的問題需要魔法訪問后端api時&#xff0c;必須使用https協議電腦端訪問正常&#xf…

【聯盛德 W803-Pico 試用】簡介、工程測試

【聯盛德 W803-Pico 試用】簡介、工程測試 本文介紹了聯盛德微電子 W803-Pico 開發板的基本信息、環境搭建、工程測試等內容。簡介包含開發板功能、主控參數及特點、開發板原理圖等信息&#xff0c;工程測試包括 Blink、串口打印等方案的演示。 活動詳情&#xff1a;聯盛德問答…

cursor使用記錄

一、如何查看自己登錄的是哪個賬號 操作路徑&#xff1a;Cursor -- 首選項 -- Cursor Setting &#xff08;有快捷鍵&#xff09; 二、狀態修改為豎排&#xff08;默認是橫排&#xff09; 默認如圖展示&#xff0c;想要像vscode、idea等等在左側豎著展示 操作路徑&#xff1…

gitlab 解決雙重認證無法登錄remote: HTTP Basic: Access denied.

問題&#xff1a;gitlab開啟了雙因素認證 如進行了 OAuth configuration 在進行git操作時如下提示 remote: HTTP Basic: Access denied. The provided password or token is incorrect or your account has 2FA enabled and you must use a personal access token instead o…

C語言基礎學習指南:從零入門到實戰應用——適合零基礎學習者與進階鞏固

目錄 一、C語言概述與開發環境搭建 二、核心語法與數據類型 三、控制結構與運算符 四、函數與模塊化編程 五、指針與內存管理 六、實踐建議與資源推薦 結語 一、C語言概述與開發環境搭建 C語言是一種高效、靈活的通用編程語言&#xff0c;廣泛應用于系統開發、嵌入式系…

C# 委托——lambda

lambda表達式不簡化寫起來和匿名函數很像&#xff0c;而匿名函數通常賦值給委托&#xff0c;通過委托進行調用。以下我們對lambda和委托的基本規則與使用進行整理&#xff0c;同時為了加深理解和記憶&#xff0c;我們整理了委托是如何一步步演化到lambda。 1. 委托 委托是一個…

【每日論文】TESS 2: A Large-Scale Generalist Diffusion Language Model

下載PDF或閱讀論文&#xff0c;請點擊&#xff1a;LlamaFactory - huggingface daily paper - 每日論文解讀 | LlamaFactory | LlamaFactory 摘要 我們推出了TESS 2&#xff0c;這是一種通用的指令跟隨擴散語言模型&#xff0c;其性能優于當代的指令調整擴散模型&#xff0c;有…

conda 配置源

無論是Anaconda vs Miniconda vs Miniforge 中的哪個&#xff0c;只要使用conda就涉及源&#xff0c;換源的目的是為了加速包的獲取 修改配置文件 通過修改用戶目錄下的 .condarc 文件來使用 不同系統下的 .condarc 目錄如下&#xff1a; Linux: ${HOME}/.condarcmacOS: ${…