字典序排數 與dfs遍歷N叉樹

2021-10-09 04:29:04 字數 763 閱讀 8188

題目如下:

給定乙個整數 n, 返回從 1 到 n 的字典順序。

例如,給定 n =1 3,返回 [1,10,11,12,13,2,3,4,5,6,7,8,9] 。

請盡可能的優化演算法的時間複雜度和空間複雜度。 輸入的資料 n 小於等於 5,000,000。

首先觀察數字的排列規則, 會發現這是乙個n叉樹的前序遍歷.

子節點和父節點的關係: children = parent*10+i (i =1,2,3…)

需要判斷: 節點所屬數字不能大於n

第一層子節點不包含0, 可以考慮單獨處理.

可以考慮使用dfs遍歷n叉樹, **如下:

list

result =

newarraylist

<

>()

;public list

lexicalorder

(int n)

return result;

}public

void

dfs(

int n,

int num)

result.

add(num)

;for

(int i =

0; i<

10; i++

)}

字典序排數 dfs

給定乙個整數 n,返回從 1 到 n 的字典順序。例如,給定 n 1 3,返回 1,10,11,12,13,2,3,4,5,6,7,8,9 請盡可能的優化演算法的時間複雜度和空間複雜度。輸入的資料 n 小於等於 5,000,000。dfs,確定好開頭,每一次把當前的開頭走完。1 class solu...

N叉樹的層序遍歷(OJ)

題目描述 給定乙個 n 叉樹,返回其節點值的層序遍歷。即從左到右,逐層遍歷 例子 給定乙個三叉樹 返回其層序遍歷 1 3,2,4 5,6 我的思路如下 用乙個佇列,並用乙個標誌性的字元將二叉樹每一層的結點分開 比如nullptr 然後一層一層插入到vector中,如果遇到nullptr,則重新插入n...

429 N 叉樹的層序遍歷

給定乙個n叉樹,返回其節點值的層序遍歷。即從左到右,逐層遍歷 樹的序列化輸入是用層序遍歷,每組子節點都由null值分隔 參見示例 c的函式原型 definition for a node.struct node return an array of arrays of size returnsize...