第一題:88. 合并兩個有序數(shù)組[https://link.juejin.cn/?target=https%3A%2F%2Fleetcode-cn.com%2Fproblem...
第一題:88. 合并兩個有序數(shù)組[https://link.juejin.cn/?target=https%3A%2F%2Fleetcode-cn.com%2Fproblem...
動態(tài)規(guī)劃(Dynamic Programming) 一、概念 動態(tài)規(guī)劃,簡稱DP,是求解最優(yōu)化問題的一種常見策略。 二、練習(xí) 322. 零錢兌換[https://link.j...
尾調(diào)用(Tail Call) 一、概念 一個函數(shù)的最后一個動作是調(diào)用函數(shù)。 如果最后一個動作是調(diào)用自身,成為尾遞歸,是尾調(diào)用的特殊情況。 很多編譯器會對尾遞歸函數(shù)進(jìn)行優(yōu)化,空...
遞歸(Recursion) 一、概念 函數(shù)(方法)直接或間接調(diào)用自身。 二、遞歸現(xiàn)象 三、函數(shù)的遞歸調(diào)用過程 如下一段函數(shù)調(diào)用: 實(shí)際在棧中的調(diào)用過程: 如果遞歸調(diào)用沒有終止...
桶排序(Bucket Sort) 一、概念 執(zhí)行流程創(chuàng)建一定數(shù)量的桶(比如用數(shù)組,鏈表作為桶)。按照一定的規(guī)則(不同類型的數(shù)據(jù),規(guī)則不同),將序列中的元素均勻分配到對應(yīng)的桶。...
基數(shù)排序(Radix Sort) 一、概念 基數(shù)排序非常適合于整數(shù)排序,尤其是非負(fù)整數(shù)。 執(zhí)行流程:依次對個位數(shù),十位數(shù),百位數(shù),千位數(shù),萬位數(shù)...進(jìn)行排序(從低到高位)。...
計(jì)數(shù)排序(Counting Sort) 一、概念 用空間換時間,在某些時候,平均時間復(fù)雜度可以比O(nlogn)更低。 計(jì)數(shù)排序的思想是,統(tǒng)計(jì)每個整數(shù)在序列中出現(xiàn)的次數(shù),進(jìn)而...
希爾排序(Shell Sort) 一、概念 希爾排序把序列看作一個矩陣,分為m列,逐列進(jìn)行排序。 m從某個整數(shù)逐漸減為1,當(dāng)m為1時,整個序列將完全有序。因此也被稱為遞減增量...
快速排序(Quick Sort) 一、概念 從序列中選擇一個軸點(diǎn)元素(pivot),假設(shè)每次選擇0位置的元素為軸點(diǎn)元素。 利用pivot將序列分割成2個子序列,將小于pivo...
歸并排序(Merge Sort) 一、概念 不斷地將當(dāng)前序列平均分割成2個子序列,直到不能再分割。(序列中只剩1個元素) 不斷地將2個子序列合并成一個有序序列,直到最終只剩下...
插入排序(Insertion Sort) 一、概念 插入排序非常類似于撲克牌的排序。 執(zhí)行流程:在執(zhí)行過程中,插入排序會將序列分為兩部分。頭部是已經(jīng)排好序的,尾部是待排序的。...
冒泡排序(Bubble Sort) 一、概念 從頭開始比較每一對相鄰元素,如果第一個比第二個大,就交換它們的位置。 執(zhí)行完一輪后,最末尾那個元素就是最大元素。 忽略上一步中曾...
一、概念 Trie 也叫做字典樹、前綴樹(Prefix Tree)、單詞查找樹。 Trie 搜索字符串的效率主要跟字符串的長度有關(guān)。 假設(shè)使用 Trie 存儲 cat、dog...
一、哈夫曼編碼 哈夫曼編碼,它是現(xiàn)代壓縮算法的基礎(chǔ)。 假設(shè)把字符串"ABBBCCCCCCDDDDDDEE"轉(zhuǎn)成二進(jìn)制編碼進(jìn)行傳輸??梢赞D(zhuǎn)成ASCII編碼(65-69,1000...
一、優(yōu)先級隊(duì)列(Priority Queue) 普通的隊(duì)列是先進(jìn)先出原則。優(yōu)先級隊(duì)列是按照優(yōu)先級高低進(jìn)行出隊(duì),比如將優(yōu)先級最高的元素作為隊(duì)頭優(yōu)先出隊(duì)。使用場景: 醫(yī)院急診根據(jù)...
一、二叉堆(Heap) 1、思考 設(shè)計(jì)一種數(shù)據(jù)結(jié)構(gòu),用來存放整數(shù),要求提3個接口。添加元素獲取最大值刪除最大值 更優(yōu)秀的數(shù)據(jù)結(jié)構(gòu):堆,獲取最大值復(fù)雜度O(1),刪除最大值O(...
一、哈希表(Hash Table) 1、概念 哈希表也叫做散列表。 哈希表的原理: 利用哈希函數(shù)生成key對應(yīng)的index,時間復(fù)雜度O(1)。 根據(jù)index(索引)操作定...
一、集合(Set) 不存放重復(fù)的元素 常用于去重存放新增IP,統(tǒng)計(jì)新增IP量存放詞匯,統(tǒng)計(jì)詞匯量 集合的內(nèi)部實(shí)現(xiàn)能使用哪些數(shù)據(jù)結(jié)構(gòu)?動態(tài)數(shù)組鏈表二叉搜索樹(AVL樹,紅黑樹)...
一、紅黑樹(Red Black Tree) 1、初識紅黑樹 紅黑樹也是一種自平衡的二叉搜索樹,也曾叫做平衡二叉B樹。 紅黑樹必須滿足以下5條性質(zhì):節(jié)點(diǎn)是RED或者BLACK根...
一、B樹性質(zhì) 1、初識B樹 B樹是一種平衡的多路搜索樹,多用于文件系統(tǒng),數(shù)據(jù)庫的實(shí)現(xiàn)。 B樹特點(diǎn):一個節(jié)點(diǎn)可以存儲超過2個元素,可以擁有超過2個子節(jié)點(diǎn)。擁有二叉樹的一些性質(zhì)。...