leetcode0547. 省份數量-medium

1 題目:省份數量

官方標定難度:中

有 n 個城市,其中一些彼此相連,另一些沒有相連。如果城市 a 與城市 b 直接相連,且城市 b 與城市 c 直接相連,那么城市 a 與城市 c 間接相連。

省份 是一組直接或間接相連的城市,組內不含其他沒有相連的城市。

給你一個 n x n 的矩陣 isConnected ,其中 isConnected[i][j] = 1 表示第 i 個城市和第 j 個城市直接相連,而 isConnected[i][j] = 0 表示二者不直接相連。

返回矩陣中 省份 的數量。

示例 1:

在這里插入圖片描述

輸入:isConnected = [[1,1,0],[1,1,0],[0,0,1]]
輸出:2

示例 2:

在這里插入圖片描述

輸入:isConnected = [[1,0,0],[0,1,0],[0,0,1]]
輸出:3

提示:

1 <= n <= 200
n == isConnected.length
n == isConnected[i].length
isConnected[i][j] 為 1 或 0
isConnected[i][i] == 1
isConnected[i][j] == isConnected[j][i]

2 solution

采用并查集,不斷合并存在連接的兩個集合即可

代碼

class Solution {
public:int find(int x, vector<int> &f) {if (f[x] == x) return x;return f[x] = find(f[x], f);}int findCircleNum(vector<vector<int>> &isConnected) {int n = isConnected.size();vector<int> f(n);int m = n;for (int i = 0; i < n; i++) f[i] = i;for (int i = 0; i < n; i++) {for (int j = i + 1; j < n; j++) {if (isConnected[i][j]) {int f1 = find(i, f);int f2 = find(j, f);if (f1 != f2) {f[f1] = f2;m--;}}}}return m; 
}
};

結果

在這里插入圖片描述

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

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

相關文章

【專題刷題】雙指針(一)

&#x1f4dd;前言說明&#xff1a; 本專欄主要記錄本人的基礎算法學習以及LeetCode刷題記錄&#xff0c;按專題劃分每題主要記錄&#xff1a;1&#xff0c;本人解法 本人屎山代碼&#xff1b;2&#xff0c;優質解法 優質代碼&#xff1b;3&#xff0c;精益求精&#xff0c;…

WebSocket 技術詳解

引言 在現代Web應用中&#xff0c;實時通信已經成為不可或缺的一部分。想象一下聊天應用、在線游戲、股票交易平臺或協作工具&#xff0c;這些應用都需要服務器能夠即時將更新推送給客戶端&#xff0c;而不僅僅是等待客戶端請求。WebSocket技術應運而生&#xff0c;它提供了一…

【redis】初識redis

初識redis Redis 是一種基于鍵值對&#xff08;key-value&#xff09; 的 NoSQL 的數據庫&#xff0c;它與很多鍵值數據庫不同&#xff0c; Redis 中的值可以是 string&#xff08;字符串&#xff09; 、hash&#xff08;哈希&#xff09;、list&#xff08;鏈表&#xff09;、…

UE5 制作方塊邊緣漸變邊框效果

該效果基于之前做的&#xff08;https://blog.csdn.net/grayrail/article/details/144546427&#xff09;進行修改得到&#xff0c;思路也很簡單&#xff1a; 1.打開實時預覽 1.為了制作時每個細節調整方便&#xff0c;勾選Live Update中的三個選項&#xff0c;開啟實時預覽。…

基于springboot的“嗨玩旅游網站”的設計與實現(源碼+數據庫+文檔+PPT)

基于springboot的“嗨玩旅游網站”的設計與實現&#xff08;源碼數據庫文檔PPT) 開發語言&#xff1a;Java 數據庫&#xff1a;MySQL 技術&#xff1a;springboot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系統展示 系統功能結構圖 局部E-R圖 系統首頁界面 系統注冊…

grafana/loki 部署搜集 k8s 集群日志

grafana/loki 和 grafana/loki-stack 的區別 ?Grafana 提供了多個 Helm Chart 用于在 Kubernetes 集群中部署 Loki 及相關組件,其中主要包括 grafana/loki 和 grafana/loki-stack。?它們的主要區別如下:? 1.grafana/loki Helm Chart: 專注于 Loki 部署: 該 Chart 專門…

Nacos-Controller 2.0:使用 Nacos 高效管理你的 K8s 配置

作者&#xff1a;濯光、翼嚴 Kubernetes 配置管理的局限 目前&#xff0c;在 Kubernetes 集群中&#xff0c;配置管理主要通過 ConfigMap 和 Secret 來實現。這兩種資源允許用戶將配置信息通過環境變量或者文件等方式&#xff0c;注入到 Pod 中。盡管 Kubernetes 提供了這些強…

python自動化瀏覽器標簽頁的切換

#獲取全部標簽頁的句柄返回句柄的列表 handleswebdriver.window_handles#獲取全部標簽頁的句柄返回句柄的列表 print(len(handles)) 切換標簽頁 handleswebdriver.window_handles webdriver.switch_to.window(handles[index])#切換到第幾個標簽頁就寫幾 關閉標簽頁 關閉標…

微信小程序組件傳參

微信小程序組件傳參感覺和vue還是挺像的 父組件向子組件傳參 在小程序中父組件子組件傳參&#xff0c;主要使用properties屬性。演示下&#xff1a; 創建組件文件夾component&#xff0c;創建組件demoComponent&#xff0c;記得創建的時候選擇組件&#xff0c;不是page頁面 …

【嵌入式硬件】LAN9253說明書(中文版)

目錄 1.介紹 1.1總體介紹 1.2模式介紹 1.2.1微控制器模式: 1.2.2 擴展模式 1.2.3 數字IO模式 1.2.4 各模式圖 2.引腳說明 2.1 引腳總覽 2.2 引腳描述 2.2.1 LAN端口A引腳 2.2.2 LAN端口B引腳 2.2.3 LAN端口A和、B電源和公共引腳 2.2.4 SPI/SQI PINS 2.2.5 分布式時…

【C語言基礎】雙指針在qsort函數中的應用

在C語言中使用 qsort 對字符串數組&#xff08;如 char* 數組&#xff09;排序時&#xff0c;必須轉換為雙指針&#xff08;char**&#xff09;&#xff0c;這是由字符串數組的內存結構和 qsort 的工作原理決定的。以下是詳細解釋&#xff1a; 一、底層原理分析 1. 字符串數組…

批處理(Batch Processing)的詳解、流程及框架/工具的詳細對比

以下是批處理&#xff08;Batch Processing&#xff09;的詳解、流程及框架/工具的詳細對比&#xff1a; 一、批處理核心概念 定義&#xff1a; 批處理是離線處理大量數據或任務的自動化流程&#xff0c;特點是無人值守、高吞吐量、資源密集型&#xff0c;常用于數據清洗、報表…

基于FreeRTOS和LVGL的多功能低功耗智能手表(APP篇)

目錄 一、簡介 二、軟件框架 2.1 MDK工程架構 2.2 CubeMX框架 2.3 板載驅動BSP 1、LCD驅動 2、各個I2C傳感器驅動 3、硬件看門狗驅動 4、按鍵驅動 5、KT6328藍牙驅動 2.4 管理函數 2.4.1 StrCalculate.c 計算器管理函數 2.4.2 硬件訪問機制-HWDataAccess 2.4.3 …

【初階數據結構】——算法復雜度

一、前言 1、數據結構是什么&#xff1f; 數據結構(Data Structure)是計算機存儲、組織數據的?式&#xff0c;指相互之間存在?種或多種特定關系的數 據元素的集合。沒有?種單?的數據結構對所有?途都有?&#xff0c;所以我們要學各式各樣的數據結構&#xff0c; 如&…

記錄 | Pycharm中如何調用Anaconda的虛擬環境

目錄 前言一、步驟Step1 查看anaconda 環境名Step2 Python項目編譯器更改 更新時間 前言 參考文章&#xff1a; 參考視頻&#xff1a;如何在pycharm中使用Anaconda創建的python環境 自己的感想 這里使用的Pycharm 2024專業版的。我所使用的Pycharm專業版位置&#xff1a;【僅用…

linux如何用關鍵字搜索日志

在 Linux 系統中搜索日志是日常運維的重要工作&#xff0c;以下是幾種常用的關鍵字搜索日志方法&#xff1a; 1. 基礎 grep 搜索 bash 復制 # 基本搜索&#xff08;區分大小寫&#xff09; grep "keyword" /var/log/syslog# 忽略大小寫搜索 grep -i "error&…

K-均值聚類機器學習算法的優缺點

K-均值聚類是一種常用的無監督學習算法&#xff0c;用于將具有相似特征的數據點聚集到一起。以下是K-均值聚類算法的步驟及其優缺點&#xff1a; K-均值聚類算法步驟&#xff1a; 初始化&#xff1a;隨機選擇K個點作為初始的聚類中心。分配數據點&#xff1a;將每個數據點分配…

AI驅動SEO關鍵詞實戰策略

內容概要 AI驅動的SEO關鍵詞優化體系通過技術融合實現了策略升級。該框架以語義理解模型為基礎&#xff0c;結合實時流量監測與行業數據庫&#xff0c;構建了包含關鍵詞挖掘、競爭評估、內容適配三大核心模塊的閉環系統。通過自然語言處理&#xff08;NLP&#xff09;技術解析…

Golang|在線排查協程泄漏

根據我們的代碼&#xff0c;前5毫秒內&#xff0c;每隔1毫秒就會來一個請求&#xff0c;5毫秒之后由于前面的協程執行完&#xff0c;后面又會來新的協程&#xff0c;所以協程數目會保持穩定但是代碼一運行&#xff0c;協程數量一直增長&#xff0c;發生了協程泄漏 我們可以list…

Java項目之基于ssm的QQ村旅游網站的設計(源碼+文檔)

項目簡介 QQ村旅游網站實現了以下功能&#xff1a; 管理員權限操作的功能包括管理景點路線&#xff0c;板塊信息&#xff0c;留言板信息&#xff0c;旅游景點信息&#xff0c;酒店信息&#xff0c;對景點留言&#xff0c;景點路線留言以及酒店留言信息等進行回復&#xff0c;…