給定乙個鍊錶(鍊錶結點包含乙個整型值)的頭結點 head。解法:同時給定列表 g,該列表是上述鍊錶中整型值的乙個子集。
返回列表 g 中元件的個數,這裡對元件的定義為:鍊錶中一段最長連續結點的值(該值必須在列表 g 中)構成的集合。
示例 1:
輸入:
head: 0->1->2->3
g = [0, 1, 3]
輸出: 2
解釋:
鍊錶中,0 和 1 是相連線的,且 g 中不包含 2,所以 [0, 1] 是 g 的乙個元件,同理 [3] 也是乙個元件,故返回 2。
示例 2:
輸入:
head: 0->1->2->3->4
g = [0, 3, 1, 4]
輸出: 2
解釋:
鍊錶中,0 和 1 是相連線的,3 和 4 是相連線的,所以 [0, 1] 和 [3, 4] 是兩個元件,故返回 2。
注意:如果 n 是給定鍊錶 head 的長度,1 <= n <= 10000。
鍊錶中每個結點的值所在範圍為 [0, n - 1]。
1 <= g.length <= 10000
g 是鍊錶中所有結點的值的乙個子集.
class solution
head = head->next;
}return res;
}};
817 鍊錶元件
817.鍊錶元件 看懂題目是關鍵,因為缺失的結點值會將原鍊錶斷開,實際上就是讓我們求有多少個相連的子鍊錶。方法1 遍歷鍊錶,每個節點在g中找到則為1,否則為0,存入棧中stack 1,1,0,1,1 然後再對棧進行判斷 我們對鍊錶進行一次掃瞄,乙個元件在鍊錶中對應一段極長的連續節點,因此如果當前的節...
817 鍊錶元件
求煉表中一段最長連續結點的值 值必須出現在列表g中,不要求順序 構成的集合的個數 一開始還以為是要求順序的,想說用遞迴來做,發現鍊錶的值只是出現在列表中而已,因此判斷鍊錶中的值出現在列表中的次數 連續不算 即可,有點類似移動視窗的思路 下面的實現是優化了幾次,第一次是使用了dict,第二次是不需要統...
鍊錶 817 鍊錶元件
817.鍊錶元件 給定煉表頭結點 head,該鍊錶上的每個結點都有乙個 唯一的整型值 同時給定列表 g,該列表是上述鍊錶中整型值的乙個子集。返回列表 g 中元件的個數,這裡對元件的定義為 鍊錶中一段最長連續結點的值 該值必須在列表 g 中 構成的集合。示例 1 輸入 head 0 1 2 3 g 0...