阿里巴巴筆試題
共兩題:
1. 關(guān)于圖片文件存儲(chǔ)的一個(gè)開放性的題目,沒什么好說的,
阿里巴巴筆試題
。2. 有一顆樹,每一個(gè)樹節(jié)點(diǎn)存儲(chǔ)著一個(gè)數(shù)字,現(xiàn)在想要找到兩個(gè)相同的.節(jié)點(diǎn)(這兩個(gè)節(jié)點(diǎn)存儲(chǔ)的數(shù)字及其所有子樹均相等)。
以下是我答題時(shí)候的思路,歡迎大家討論。
思路1:
1) 首先通過一個(gè)遍歷(如前序遍歷)得到一個(gè)數(shù)字序列,并對(duì)樹中的葉子節(jié)點(diǎn)在這個(gè)序列中做標(biāo)記(現(xiàn)在問題退化為在一個(gè)數(shù)字串中找出重復(fù)的字符串,且這些字符串應(yīng)該是以標(biāo)記的葉子節(jié)點(diǎn)結(jié)尾的)
2) 采用后綴樹可以很方便的求得相同的數(shù)字串序列
3) 驗(yàn)證2)中得到的結(jié)果(應(yīng)該是一個(gè)小結(jié)果集) 是否滿足要求,驗(yàn)證的時(shí)間復(fù)雜度應(yīng)該是比較小的
思路2:
1) 對(duì)樹中的每一個(gè)節(jié)點(diǎn)設(shè)定一個(gè)權(quán)值,這個(gè)權(quán)值為其所有子節(jié)點(diǎn)的權(quán)值及其自身數(shù)字值之間的乘積(可能需要bignumber,或者考慮將這些數(shù)字進(jìn)行移位異或)
2) 采用后序遍歷,計(jì)算每一個(gè)節(jié)點(diǎn)的權(quán)值,并順帶記錄其樹深度,
資料共享平臺(tái)
《阿里巴巴筆試題》(http://www.szmdbiao.com)。統(tǒng)計(jì)權(quán)值和深度均相同的節(jié)點(diǎn)3) 驗(yàn)證2)中得到的結(jié)果是否滿足要求,驗(yàn)證的時(shí)間復(fù)雜度應(yīng)該是比較小的
【阿里巴巴筆試題】相關(guān)文章:
4.阿里巴巴筆試題目
8.阿里巴巴筆試試題