leetcode261. 以圖判樹

給定從 0 到 n-1?標號的?n 個結點,和一個無向邊列表(每條邊以結點對來表示),請編寫一個函數用來判斷這些邊是否能夠形成一個合法有效的樹結構。

示例 1:

輸入: n = 5, 邊列表 edges = [[0,1], [0,2], [0,3], [1,4]]
輸出: true
示例 2:

輸入: n = 5, 邊列表 edges = [[0,1], [1,2], [2,3], [1,3], [1,4]]
輸出: false
注意:你可以假定邊列表 edges 中不會出現重復的邊。由于所有的邊是無向邊,邊?[0,1]?和邊 [1,0]?是相同的,因此不會同時出現在邊列表 edges 中。

思路:并查集,沒有環(find(x)!=find(y)),并且根=1(根多了就是森林了),我們認為是一顆樹。

class Solution {int[] parent;//這是記錄關系的數組//查找int find(int parent[], int i) {if (parent[i] == -1)return i;return find(parent, parent[i]);}//合并void union(int parent[], int x, int y) {int xset = find(parent, x);int yset = find(parent, y);if (xset != yset)parent[xset] = yset;}public boolean validTree(int n, int[][] edges) {int len=edges.length;parent = new int[n];Arrays.fill(parent, -1);for (int i = 0; i < len; i++) {if(find(parent,edges[i][0])==find(parent,edges[i][1]))return false;union(parent, edges[i][0], edges[i][1]);}int count = 0;//查根的數量for (int i = 0; i < n; i++)if (parent[i] == -1)count++;return count==1;}
}

?

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

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

相關文章

leetcode323. 無向圖中連通分量的數目

給定編號從 0 到 n-1 的 n 個節點和一個無向邊列表&#xff08;每條邊都是一對節點&#xff09;&#xff0c;請編寫一個函數來計算無向圖中連通分量的數目。 示例 1: 輸入: n 5 和 edges [[0, 1], [1, 2], [3, 4]] 0 3 | | 1 --- 2 4 輸出…

leetcode79. 單詞搜索 網格地圖搜索+回溯經典寫法啦

給定一個二維網格和一個單詞&#xff0c;找出該單詞是否存在于網格中。 單詞必須按照字母順序&#xff0c;通過相鄰的單元格內的字母構成&#xff0c;其中“相鄰”單元格是那些水平相鄰或垂直相鄰的單元格。同一個單元格內的字母不允許被重復使用。 示例: board [ [A,B,C…

leetcode1075. 項目員工 I(SQL)

項目表 Project&#xff1a; ---------------------- | Column Name | Type | ---------------------- | project_id | int | | employee_id | int | ---------------------- 主鍵為 (project_id, employee_id)。 employee_id 是員工表 Employee 表的外鍵。 員工…

leetcode1082. 銷售分析 I (SQL)

產品表&#xff1a;Product ----------------------- | Column Name | Type | ----------------------- | product_id | int | | product_name | varchar | | unit_price | int | ----------------------- product_id 是這個表的主鍵. 銷售表&#xff1a;Sale…

Oracle 獲取當前日期及日期格式

Oracle 獲取當前日期及日期格式 <wbr><wbr> 獲取系統日期&#xff1a;<wbr><wbr><span style"padding:0px; margin:0px; color:rgb(255,0,0)">SYSDATE()<br style"padding-bottom:0px; padding-top:0px; padding-left:0px; ma…

leetcode1083. 銷售分析 II(SQL)

Table: Product ----------------------- | Column Name | Type | ----------------------- | product_id | int | | product_name | varchar | | unit_price | int | ----------------------- product_id 是這張表的主鍵 Table: Sales --------------------…

leetcode1084. 銷售分析III(SQL)

Table: Product ----------------------- | Column Name | Type | ----------------------- | product_id | int | | product_name | varchar | | unit_price | int | ----------------------- product_id 是這個表的主鍵 Table: Sales --------------------…

炸窩(Java)拼接

數組中插入相關練習 例題&#xff1a;定義一個方法 &#xff0c;將數組{1,2,3}按照指定的格式進行拼接成一個字符串 /*例題&#xff1a;定義一個方法 &#xff0c;將數組{1,2,3}按照指定的格式進行拼接成一個字符串&#xff0c; 格式定義如下[word1#word2#word3]. 思路分析&a…

leetcode71. 簡化路徑 Unix 風格

以 Unix 風格給出一個文件的絕對路徑&#xff0c;你需要簡化它。或者換句話說&#xff0c;將其轉換為規范路徑。 在 Unix 風格的文件系統中&#xff0c;一個點&#xff08;.&#xff09;表示當前目錄本身&#xff1b;此外&#xff0c;兩個點 &#xff08;..&#xff09; 表示將…

李牛(Linux)腳本

Linux課堂筆記day01 主要總結內容&#xff1a; 一&#xff1a;Linux背景介紹 二&#xff1a;系統操作 三&#xff1a;服務管理 四&#xff1a;shell腳本 五&#xff1a;文本操作 六:常用服務搭建 01&#xff1a;初識linux 收獲&#xff1a;可以熟練應對運維和開發 對以后的生…

leetcode601. 體育館的人流量(SQL)

X 市建了一個新的體育館&#xff0c;每日人流量信息被記錄在這三列信息中&#xff1a;序號 (id)、日期 (visit_date)、 人流量 (people)。 請編寫一個查詢語句&#xff0c;找出人流量的高峰期。高峰期時&#xff0c;至少連續三行記錄中的人流量不少于100。 例如&#xff0c;表…

李牛(Linux)打包

15&#xff1a;打包壓縮以及解壓縮 接下來我們來介紹打包壓縮以及解壓縮命令 首先我們要在腦海里想幾個問題&#xff1a; 1.打包壓縮以及解壓縮在字面上理解到底是什么意思&#xff1f; 是不是像我們生活見到的事例那樣 比如說&#xff1a;生產酒的廠商一般都是按照規則將12瓶…

notepad++ 文本文件內容丟失恢復

今天用著notepad不知道怎的&#xff0c;突然就崩潰了&#xff0c;然后我下次打開的時候彈了個框&#xff0c;我按了OK之后&#xff0c;里面所有的內容都不見了 網上百度了半天&#xff0c;總結如下&#xff1a; 在如下目錄下有notepad會自動保存的文件 C:\Users\Administrato…

jquery實現頁面提示,數據正在加載中。(

簡單代碼&#xff1a; jsp中代碼如下&#xff1a;<wbr> <div id"dataLoad" style"display:none"><!--頁面載入顯示--></wbr><wbr><wbr><table width100% height100% border0 aligncenter valignmiddle></wbr…

李牛(Linux)vi

16&#xff1a;強大的vi 引言&#xff1a;提到vi我們不得不提到vim 這兩種編輯器就先當于我們Windows操作系統當中的記事本 不過vi以及vim編輯器熟練掌握之后是不需使用鼠標進行操作的 完全都是由鍵盤來進行控制 那為什么可以不用鼠標呢 就是因為我們的vi編輯器是基于多模式的…

(多線程)leetcode1114. 按序打印 認識AtomicInteger

我們提供了一個類&#xff1a; public class Foo { public void one() { print("one"); } public void two() { print("two"); } public void three() { print("three"); } } 三個不同的線程將會共用一個 Foo 實例。 線程 A 將會調用 on…

李牛(Linux)

20&#xff1a;用戶和用戶組管理 引言&#xff1a; 新思維1&#xff1a;用戶&#xff1f;用戶是什么&#xff1f;能不能吃&#xff1f;好吃不&#xff01;哈哈 不開玩笑了 我們平常接觸的用戶就是window系統下的用戶 用戶名叫啥來著 哦 user 但是對于Windows操作系統來說 好像…

(多線程)leetcode1115. 交替打印FooBar 記得Thread.yield();

我們提供一個類&#xff1a; class FooBar { public void foo() { for (int i 0; i < n; i) { print("foo"); } } public void bar() { for (int i 0; i < n; i) { print("bar"); } } } 兩個不同的線程將會共用…

Date類(日期時間類)219

219節課堂筆記 1.概述&#xff1a;表示特定的時間 2.所在的類&#xff1a;java.util.Date(表示時間和日期的類) 類date標識特定的瞬間&#xff0c;精確到毫秒 3.毫秒的換算&#xff1a;1秒1000毫秒 tips&#xff1a;不可以認為是1秒等于60毫秒&#xff0c;與時鐘換算是不一樣的…

(多線程)leetcode1116. 打印零與奇偶數

假設有這么一個類&#xff1a; class ZeroEvenOdd { public ZeroEvenOdd(int n) { ... } // 構造函數 public void zero(printNumber) { ... } // 僅打印出 0 public void even(printNumber) { ... } // 僅打印出 偶數 public void odd(printNumber) { ... } …