劍指offer 演算法題練習 part4 重建二叉樹

2021-07-23 06:05:32 字數 913 閱讀 8805

劍指offer-演算法題練習:part4 重建二叉樹

時間限制:1秒空間限制:32768k

題目描述

輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。

/**

* definition for binary tree

* struct treenode

* };

*/class solution

treenode *root = new treenode(pre[0]);

// 處理中序遍歷的vector

vector::const_iterator itr = find(in.cbegin(), in.cend(), pre[0]);

vectorleftin(in.cbegin(), itr);

vectorrightin(itr + 1, in.cend());

// 處理前序遍歷的vector

int leftpresize = leftin.size();

vectorleftpre(pre.cbegin() + 1, pre.cbegin() + leftpresize + 1);

vectorrightpre(pre.cbegin() + leftpresize + 1, pre.cend());

// 遞迴

root->left = reconstructbinarytree(leftpre, leftin);

root->right = reconstructbinarytree(rightpre, rightin);

return root;

}};

劍指offer面試演算法題

1.長度為n的陣列裡面的元素都在0 n 1之間,找出第乙個重複的數字 思路 從頭到尾依次遍歷,如果當前的值a i i,如果a i a a i 那麼需要把a a i 位置上的值與a i 作交換 把對的值放在對的位置 之後繼續判斷此時的a i 位置沒有移動 如果a i a a i 證明對的位置上有對的元...

劍指offer練習(一)

寫在前面 純粹開個部落格督促自己刷題而已,只是把每個題的相對較好的解法蒐集過來,以便自己以後好找而已,以後也會不時寫一些跟產品經理學習有關的東西,理由同上,希望自己能堅持下去。解法 首先遍歷原字串,找出字串的長度以及其中的空格數量,根據原字串的長度和空格的數量我們可以求出最後新字串的長度。設定兩個指...

劍指offer陣列練習

1.面試題第56題 乙個整型陣列裡除了兩個數字之外,其他的數字都出現了兩次。請寫程式找出這兩個只出現一次的數字。1 最初的思路 將陣列中的第乙個數字與其他的數字進行對比,如果有與它相同的就將第二個數字與其他數字對比,依次下去。問題 會發現時間複雜度過高。真正寫 時會根據題目的特徵加一些判斷,來減小比...