定義:后綴數(shù)組(suffix array)是將字符串的所有后綴進行排序放入數(shù)組中。后綴樹(suffix tree)則是所有后綴形成的字典樹(trie)的一種壓縮表示。后綴數(shù)組...
定義:后綴數(shù)組(suffix array)是將字符串的所有后綴進行排序放入數(shù)組中。后綴樹(suffix tree)則是所有后綴形成的字典樹(trie)的一種壓縮表示。后綴數(shù)組...
給定n個活動,已知它們的起止時間,如何選擇活動能夠使得單個人能夠完成最多數(shù)量的活動,假設(shè)單個人同一個時間只能做單個活動。例1:考慮下面三個活動, 則單人最多可以完成兩個活動:...
假設(shè)有一些朋友之間互相具有債務(wù)關(guān)系,如果已知他們之間的欠款和借款金額,問至少需要多少現(xiàn)金流才能解決它們之間的債務(wù)關(guān)系(所有借款都歸還)。例如,下圖表示三個朋友P0,P1,P2...
火車站臺數(shù)量問題 假設(shè)已知某個火車站的所有過往列車的到達arrival和離開departure時間(同一天),如果要求所有列車都不等待直接進站,問至少需要多少個站臺。無需考慮...
現(xiàn)實世界中很多事物都是以網(wǎng)絡(luò)形式組織的,例如人們的社交網(wǎng)絡(luò),道路交通網(wǎng)絡(luò)等。社交媒體的發(fā)達使網(wǎng)絡(luò)的研究更加火熱。網(wǎng)絡(luò)在計算機中以圖graph來表示,具體的表示方法將很大程度上...
樹是一種在計算機中廣泛應(yīng)用的非線性數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)以層次結(jié)構(gòu)存儲(hierarchical),磁盤的文件目錄就是典型的樹結(jié)構(gòu)。和字典不同,樹支持對數(shù)據(jù)進行有序存儲。二叉樹是最典...
集合的特點是不包含重復(fù)元素,集合的元素通常無順序之分。在系統(tǒng)編程中集合很常用,但是并非所有語言都原生支持集合。集合的三條理論: 不包含任何元素的集合為空集 兩個集合包含的元素...
Hash表可以在常數(shù)時間內(nèi)進行插入、刪除和尋找,這是其它的數(shù)據(jù)結(jié)構(gòu)難以做到的。通常使用Hash表是為了利用其高效的查找方法。Hash表的核心在于如何處理沖突,不同的hash算...
字典是一種存儲鍵值對的數(shù)據(jù)結(jié)構(gòu),例如電話本,我們通常用人名來查詢電話號碼,這里的人名就是鍵,電話號碼就是對應(yīng)的值。Javascript中的Object類內(nèi)部即實現(xiàn)為一個字典,...
鏈表是一種非常常用的數(shù)據(jù)結(jié)構(gòu),相比數(shù)組,鏈表至少有以下優(yōu)點: 數(shù)組長度固定,每次動態(tài)申請后需要移動所有元素,鏈表隨著元素增刪長度動態(tài)變化; 向數(shù)組中間插入/刪除元素需要移動該...
隊列queue是一種先進先出FIFO的列表,數(shù)據(jù)在尾部添加,在首部刪除。在日常生活中隊列具有廣泛的應(yīng)用,例如銀行排隊、等待公交車排隊等。隊列的核心操作有兩個:enqueue入...
Stack是一種高效率的數(shù)據(jù)結(jié)構(gòu),相比List,它僅支持在一端(尾部)進行存取操作,即常說的后進先出LIFO。在計算機底層和編程語言內(nèi)部實現(xiàn)中以及現(xiàn)實問題中都有廣泛的應(yīng)用。 ...
List是日常生活中使用最多的一種數(shù)據(jù)組織工具,例如購物單,運貨單,排名表等。注意List不適合需要進行頻繁排序或查找的場景。List中的元素是按順序組織(存儲)起來的。元素...
Javascript 中的數(shù)組array是一種特殊的對象,數(shù)組下標(biāo)可以視為對象的屬性名稱,注意js內(nèi)部會將數(shù)組下標(biāo)整數(shù)轉(zhuǎn)換為字符以統(tǒng)一表示對象。 數(shù)組對應(yīng)類名稱為Array,...