解法一:常規解法,建圖+dfs,時間複雜度o(n)+o(n),空間複雜度因為需要儲存圖,所以是o(n)
這種方法是通解,對於所有圖都適用。
/**
* definition for singly-linked list.
* struct listnode
* };
*/class solution
u = v;
}//dfs
int ans = 0;
unordered_setvisited;
for(int u : g)
return ans;
}private:
void dfs(int cur, unordered_map>& g, unordered_set& visited)
}};
解法二:利用list的特性,將g中的點對映到list上的話,每乙個元件內部都是線性連線的,外部應該是斷開的,所以可以利用這種特性,遍歷鍊錶,當乙個節點在g中,但它的下乙個節點為null或者下一節點的值不在g中,則說明這是乙個組建的末尾元素,ans++,再繼續遍歷
class solution
return ans;
}};
Leetcode 817 鍊錶元件
time 20190903 type medium 給定乙個鍊錶 鍊錶結點包含乙個整型值 的頭結點 head。同時給定列表 g,該列表是上述鍊錶中整型值的乙個子集。返回列表 g 中元件的個數,這裡對元件的定義為 鍊錶中一段最長連續結點的值 該值必須在列表 g 中 構成的集合。示例 1 輸入 head...
LeetCode 817 鍊錶元件
difficulty 中等 給定煉表頭結點head,該鍊錶上的每個結點都有乙個唯一的整型值。同時給定列表g,該列表是上述鍊錶中整型值的乙個子集。返回列表g中元件的個數,這裡對元件的定義為 鍊錶中一段最長連續結點的值 該值必須在列表g中 構成的集合。示例 1 輸入 head 0 1 2 3 g 0,1...
leetcode 817 鍊錶元件
給定煉表頭結點 head,該鍊錶上的每個結點都有乙個 唯一的整型值 同時給定列表 g,該列表是上述鍊錶中整型值的乙個子集。返回列表 g 中元件的個數,這裡對元件的定義為 鍊錶中一段最長連續結點的值 該值必須在列表 g 中 構成的集合。示例 1 輸入 head 0 1 2 3 g 0,1,3 輸出 2...