黑格爾曾經(jīng)說(shuō)過(guò):熟知非真知猬仁,一直在使用map和set容器宠纯,也知道它們的底層是紅黑樹(shù)寨蹋,但是紅黑樹(shù)究竟是如何實(shí)現(xiàn)的稼钩?今天剖析了一下紅黑樹(shù)的底層原理铭腕,并且動(dòng)手實(shí)現(xiàn)了一棵紅黑樹(shù)器钟。首先...
![240](https://cdn2.jianshu.io/assets/default_avatar/4-3397163ecdb3855a0a4139c34a695885.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/240/h/240)
黑格爾曾經(jīng)說(shuō)過(guò):熟知非真知猬仁,一直在使用map和set容器宠纯,也知道它們的底層是紅黑樹(shù)寨蹋,但是紅黑樹(shù)究竟是如何實(shí)現(xiàn)的稼钩?今天剖析了一下紅黑樹(shù)的底層原理铭腕,并且動(dòng)手實(shí)現(xiàn)了一棵紅黑樹(shù)器钟。首先...
輸入某二叉樹(shù)的前序遍歷和中序遍歷的結(jié)果斑司,請(qǐng)重建該二叉樹(shù)谴餐。假設(shè)輸入的前序遍歷和中序遍歷的結(jié)果中都不含重復(fù)的數(shù)字姻政。例如:前序遍歷 preorder = [3,9,20,15,7]...
給定一個(gè)僅包含數(shù)字 2-9 的字符串,返回所有它能表示的字母組合岂嗓。給出數(shù)字到字母的映射如下(與電話(huà)按鍵相同)汁展。注意 1 不對(duì)應(yīng)任何字母。 輸入:"23" 輸出:["ad", ...
首先食绿,先來(lái)看看題目:合并兩個(gè)排序的鏈表輸入兩個(gè)遞增排序的鏈表,合并這兩個(gè)鏈表并使新鏈表中的節(jié)點(diǎn)仍然是遞增排序的公罕。 題目本身不多XX器紧,直接上代碼(重要的是,第一次學(xué)著用VS s...
先來(lái)看看例題:Leetcode120題: 三角形最小路徑和給定一個(gè)三角形桥状,找出自頂向下的最小路徑和帽揪。每一步只能移動(dòng)到下一行中相鄰的結(jié)點(diǎn)上。 例如辅斟,給定三角形: 自頂向下的最小...
給定一個(gè)可能包含重復(fù)元素的整數(shù)數(shù)組 nums转晰,返回該數(shù)組所有可能的子集(冪集)。 說(shuō)明:解集不能包含重復(fù)的子集士飒。 '''class Solution { public: pr...
給定一個(gè)包含非負(fù)整數(shù)的 m x n 網(wǎng)格查邢,請(qǐng)找出一條從左上角到右下角的路徑,使得路徑上的數(shù)字總和為最小酵幕。說(shuō)明:每次只能向下或者向右移動(dòng)一步扰藕。示例: 動(dòng)態(tài)數(shù)組: 一維動(dòng)態(tài)數(shù)組可...
題目描述:給出集合 [1,2,3,…,n],其所有元素共有 n! 種排列芳撒。 按大小順序列出所有排列情況邓深,并一一標(biāo)記,當(dāng) n = 3 時(shí), 所有排列如下:"123""132""...
在 O(n log n) 時(shí)間復(fù)雜度和常數(shù)級(jí)空間復(fù)雜度下笔刹,對(duì)鏈表進(jìn)行排序芥备。eg:輸入: 4->2->1->3輸出: 1->2->3->4size<<=1;等價(jià)于size=si...
將一個(gè)按照升序排列的有序數(shù)組,轉(zhuǎn)換為一棵高度平衡二叉搜索樹(shù)舌菜。本題中萌壳,一個(gè)高度平衡二叉樹(shù)是指一個(gè)二叉樹(shù)每個(gè)節(jié)點(diǎn) 的左右兩個(gè)子樹(shù)的高度差的絕對(duì)值不超過(guò) 1。給定有序數(shù)組: [-1...
給定一個(gè)二叉樹(shù)日月,返回其節(jié)點(diǎn)值的鋸齒形層次遍歷袱瓮。(即先從左往右,再?gòu)挠彝筮M(jìn)行下一層遍歷爱咬,以此類(lèi)推尺借,層與層之間交替進(jìn)行)。 給定二叉樹(shù) [3,9,20,null,null,15...
給定一個(gè)二叉樹(shù),原地將它展開(kāi)為鏈表精拟。 例如燎斩,給定二叉樹(shù) 展開(kāi)后的結(jié)果為: 算法思想: 具體代碼: