代碼隨想錄|圖論|12島嶼周長

leetcode:106. 島嶼的周長

題目

題目描述

給定一個由 1(陸地)和 0(水)組成的矩陣,島嶼是被水包圍,并且通過水平方向或垂直方向上相鄰的陸地連接而成的。

你可以假設矩陣外均被水包圍。在矩陣中恰好擁有一個島嶼,假設組成島嶼的陸地邊長都為 1,請計算島嶼的周長。島嶼內部沒有水域。

輸入描述

第一行包含兩個整數 N, M,表示矩陣的行數和列數。之后 N 行,每行包含 M 個數字,數字為 1 或者 0,表示島嶼的單元格。

輸出描述

輸出一個整數,表示島嶼的周長。

思路

求周長很容易看出來,對于每個小方格而言,他的四周如果是0或者超出邊界說明這里有一條邊。

/*
計算島嶼的周長
*/
#include <bits/stdc++.h>
using namespace std;// 對于一個陸地1而言,它的四周,只要是0或者超出邊界,那就是周長的一部分int dir[4][2] = {-1, 0, 0, -1, 1, 0, 0, 1};int main()
{int n, m;cin >> n >> m;int perimeter = 0;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++){for (int j = 0; j < m; j++){if (grid[i][j] == 1){for (int k = 0; k < 4; k++){int nexti = i + dir[k][0];int nextj = j + dir[k][1];if (grid[nexti][nextj] == 0 || nexti < 0 || nexti >= n || nextj < 0 || nextj >= m)perimeter++;}}}}cout << perimeter << endl;return 0;
}

總結

沒用到dfs

參考資料

?代碼隨想錄

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

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

相關文章

開發制作模仿參考抄別人的小程序系統

很多老板看見別人公司的小程序系統界面好看&#xff0c;功能強大&#xff0c;使用人數多。就想要抄襲模仿參考別人家的小程序系統。想要了解一下有沒有侵權風險&#xff0c;以及怎么開發制作開發制作模仿參考抄別人的小程序系統。首先回答第一個問題&#xff0c;只要你的小程序…

c語言中的數組IV

數組的集成初始化 集成初始化的定位 數組的大小 數組的賦值 不能直接將一個數組a賦值給數組b&#xff0c;只能通過遍歷來實現 遍歷數組 示例——檢索元素在數組中的位置#include <stdio.h> int search(int key,int a[],int length); int main(void){int a[] {2,4,6,7,1,…

LDO選型

目錄 一、最大輸出電流 二、最大輸入電壓 三、最大功率&#xff1a;Pmax 四、負載動態調整率 五、輸入電源紋波抑制比&#xff1a;PSRR 一、最大輸出電流 參考TI LM1117IMPX-3.3/NOPB數據手冊 由于LDO轉換效率很低&#xff0c;LDO的標稱最大電流 ≥ 實際最大負載電流 1…

飛算JavaAI:重構Java開發的“人機協同”新范式

目錄一、從需求到架構&#xff1a;AI深度參與開發“頂層設計”1.1 需求結構化&#xff1a;自然語言到技術要素的準確轉換1.2 架構方案生成&#xff1a;基于最佳實踐的動態匹配二、編碼全流程&#xff1a;從“手寫代碼”到“人機協同創作”2.1 復雜業務邏輯生成&#xff1a;以“…

解決SQL Server SQL語句性能問題(9)——SQL語句改寫(7)

9.4.15. 消除join場景一 與Oracle等其他關系庫類似,SQL Server中,join作為基本語法用于SQL語句中相關表之間的連接,有些場景中,join既可以增強SQL語句的可讀性,同時,又可以提升SQL語句的性能,但有些場景中,join會導致CBO為SQL語句產生次優的查詢計劃,進而出現SQL語句…

深度學習-數據準備

一、數據準備 1.1定義 數據準備&#xff08;Data Preparation&#xff09; 是數據分析與機器學習流程中的核心環節&#xff0c;指將原始數據轉換為適合分析或建模的結構化格式的過程。 1.2組成 數據準備主要由兩個部分組成&#xff0c;一個是劃分數據集&#xff0c;一個是構建…

IPA軟件源預覽系統源碼(源碼下載)

這是一款IPA軟件源預覽系統源碼&#xff0c;搭建這個源碼一定記住沒有軟件源的別搭建&#xff0c;因為你玩不明白&#xff0c;不是做IPA軟件源的不要下載這套源碼&#xff0c;簡單的測試了&#xff0c;UI很舒服&#xff0c;喜歡的自行部署&#xff01; 源碼下載&#xff1a;htt…

python 數據分析 單細胞測序數據分析 相關的圖表,常見于腫瘤免疫微環境、細胞亞群功能研究 ,各圖表類型及邏輯關系如下

這是一組 單細胞測序數據分析 相關的圖表&#xff0c;常見于腫瘤免疫微環境、細胞亞群功能研究 &#xff0c;各圖表類型及邏輯關系如下&#xff1a;使用kimi doubao 和deepseek &#xff0c;分析圖標和pdf 豆包最好&#xff0c;用豆包分析| 圖表類型 A、E&#xff08;堆疊柱狀…

表達式索引海外云持久化實踐:關鍵技術解析與性能優化

隨著全球數字化轉型加速&#xff0c;表達式索引技術正成為海外云服務商提升數據庫性能的核心方案。本文將深度解析如何通過云原生架構實現索引持久化&#xff0c;對比主流云平臺的技術實現差異&#xff0c;并給出跨國業務場景下的優化建議。 表達式索引海外云持久化實踐&#x…

sprinboot團隊任務管理系統 計算機畢業設計源碼32322

摘 要 隨著團隊協作模式的日益多樣化&#xff0c;傳統的任務管理方法已無法滿足現代團隊對高效協作和任務分配的需求。因此&#xff0c;本研究通過引入信息化設計并實現了一套團隊任務管理系統&#xff0c;旨在為管理員、成員用戶和團長用戶等用戶提供高效、靈活的任務管理…

單鏈表,咕咕咕

1.引入單鏈表順序表對于中間或者頭部的刪除&#xff0c;時間復雜度為O(N)&#xff0c;增容需要申請新的空間&#xff0c;拷貝數據&#xff0c;釋放就空間&#xff0c;消耗。增容一般是2倍的增長&#xff0c;會有空間的浪費。為了解決這些問題&#xff0c;引入了單鏈表。2.單鏈表…

docker設置鏡像加速

配置鏡像加速器解決 Docker 拉取問題 在使用 Docker 拉取鏡像時&#xff0c;我首先按照官方指引嘗試配置阿里云鏡像加速器。然而&#xff0c;多次操作后仍無法正常使用&#xff0c;懷疑是個人賬號沒有權限拉取鏡像&#xff0c;但經過多輪權限檢查與配置核對&#xff0c;始終未…

【計算機網絡】王道考研筆記整理(2)物理層

第二章 物理層2.1 通信基礎的基本概念本節主要介紹通信中常用的一些基本概念&#xff0c;包括&#xff1a;信源、信宿、信號、信道&#xff0c;以及碼元、速率、波特。首先&#xff0c;我們來看什么是信源、信宿、信號、信道&#xff0c;這些概念通過一張圖就可以理解。其中&a…

2023年IEEE TITS SCI2區TOP,增強回溯搜索算法EBSA+多無人機輔助商業包裹遞送系統飛行規劃,深度解析+性能實測

目錄1.摘要2.回溯搜索算法BSA原理3.模型定義4.增強回溯搜索算法EBSA5.結果展示6.參考文獻7.算法輔導應用定制讀者交流1.摘要 利用無人機進行商業包裹投遞可以顯著推動物流行業的轉型升級&#xff0c;這得益于節省了人力資源成本&#xff0c;而無人機正在成為智能交通運輸系統的…

window wsl 環境下編譯openharmony,HarmonyOS 三方庫 FFmpeg

1.wsl 創建 C:\Users\Administrator>wsl --list --online 以下是可安裝的有效分發的列表。 使默認分發用 “*” 表示。 使用 wsl --install -d <Distro> 安裝。 NAME FRIENDLY NAME Ubuntu Ubuntu Debian Debian GNU/Linux kali-linux Kali Linux Rolling Ub…

Kubernetes服務暴露與負載均衡深度探析

目錄 Kubernetes服務基礎 服務類型與適用場景 服務發現與DNS 負載均衡機制 kube-proxy IPVS Ingress控制器 Ingress與服務暴露 Ingress資源 Ingress控制器 負載均衡策略與配置 服務配置 Ingress配置 IPVS配置 高可用性設計 服務冗余 Ingress控制器高可用 負載…

探索飛算 JavaAI 進階:解鎖高效Java開發的新維度

前引&#xff1a;在當今快速迭代的軟件開發領域&#xff0c;Java作為企業級應用的基石&#xff0c;持續推動著技術創新。隨著性能需求的提升&#xff0c;“飛算JAVA”應運而生&#xff0c;它融合了現代優化理念&#xff0c;為開發者提供了一套簡潔、高效的解決方案。本文將深入…

Java大廠面試故事:謝飛機的互聯網醫療系統技術面試(Spring Boot、MyBatis、Kafka、Spring Security、AI等)

Java大廠面試故事&#xff1a;謝飛機的互聯網醫療系統技術面試&#xff08;Spring Boot、MyBatis、Kafka、Spring Security、AI等&#xff09;本文以互聯網醫療場景為主線&#xff0c;模擬Java大廠真實面試流程&#xff0c;由嚴肅面試官與"水貨"程序員謝飛機展開有趣…

Deekseek 學習筆記

目錄 比較全的微調筆記&#xff0c;推薦&#xff1a; ds 硬件gpu測試網站&#xff1a; 比較全的微調筆記&#xff0c;推薦&#xff1a; 零基礎入門&#xff1a;DeepSeek微調教程來了&#xff01;_deepseek微調訓練-CSDN博客 r1微調筆記&#xff1a; https://zhuanlan.zhihu…

aksk前端簽名實現

需求&#xff1a; 頁面和后臺使用aksk進行簽名校驗&#xff0c;普通JSON參數簽名沒問題&#xff0c;但使用formData上傳文件時簽名總是無法通過后臺校驗 關鍵點&#xff1a; 1、瀏覽器在傳遞formData格式數據時會自動隨機boundary&#xff0c;這樣頁面無法在請求發起前拿到隨機…