構造陣列的MaxTree

2021-09-09 07:10:42 字數 1282 閱讀 1647

【題目】定義二叉樹節點如下:

public

static

class

node

}

乙個陣列的maxtree定義如下。

【要求】給定乙個沒有重複元素的陣列arr,寫出生成這個陣列的maxtree的函式,要求如果陣列長度為n,則時間複雜度為o(n)、額外空間複雜度為o(n)。

思路:以下列原則來建立這棵樹:

public

class

maxtree

}public

static node getmaxtreetree

(int

arr)

stack

stack =

newstack

<

>()

; hashmap

lbigmap =

newhashmap

<

>()

; hashmap

rbigmap =

newhashmap

<

>()

;for

(int i =

0; i < narr.length; i++

) stack.

push

(narr[i]);

}while

(!stack.

isempty()

)for

(int i = narr.length -

1; i >

0; i--

) stack.

push

(narr[i]);

}while

(!stack.

isempty()

) node head = null;

for(

int i =

0; i < narr.length; i++

)else

if(left == null)

else

}else

if(right == null)

else

}else

else}}

return head;

}public

static

void

popstacksetmap

(stack

stack, hashmap

map)

else

}}

棧和佇列 構造陣列的MaxTree

題目 定義二叉樹節點如下 class node def init self,value self.value value self.left none self.right none乙個陣列的maxtree定義如下 1 陣列中必須沒有重複元素 2 maxtree是一棵二叉樹,陣列的每乙個值對應乙個二...

九章演算法面試題42 構造MaxTree

給定乙個沒有重複元素的陣列a,定義a上的maxtree如下 maxtree的根節點為a中最大的數,根節點的左子樹為陣列中最大數左邊部分的maxtree,右子樹為陣列中最大數右邊部分的maxtree。請根據給定的陣列a,設計乙個演算法構造這個陣列的maxtree。如果能夠確定每個節點的父親節點,則可以...

D 構造陣列

題意 構造乙個長度為n的陣列a,構造方式如下 依次進行n次操作,第i次操作在陣列a的index i 位置處插入整數number i 最後從左到右輸出陣列a的元素題解 這道題從前向後考慮是不行的,我們從後向前考慮,最後乙個插入的數字置肯定是index n 然後倒二插入的位置可能是index n 1 或...