思想:還是從給定區間內(一堆節點中)構成二叉樹的問題
根節點root選擇當前區間的最大值(位於區間的第maxidx位置上的值)構成
左子樹區間為[start,maxidx-1],右子樹區間為[maxidx+1,end]
遞迴構造即可
時間複雜度o(n^2),空間複雜度o(logn)
class solution
idx++;
}treenode root = new treenode(nums[maxidx]);
root.left = helper(nums,start,maxidx-1);
root.right = helper(nums,maxidx+1,end);
return root;
}public treenode constructmaximumbinarytree(int nums)
}
654 最大二叉樹
給定乙個不含重複元素的整數陣列。乙個以此陣列構建的最大二叉樹定義如下 二叉樹的根是陣列中的最大元素。左子樹是通過陣列中最大值左邊部分構造出的最大二叉樹。右子樹是通過陣列中最大值右邊部分構造出的最大二叉樹。通過給定的陣列構建最大二叉樹,並且輸出這個樹的根節點。example 1 輸入 3,2,1,6,...
654 最大二叉樹
題目描述 給定乙個不含重複元素的整數陣列。乙個以此陣列構建的最大二叉樹定義如下 二叉樹的根是陣列中的最大元素。左子樹是通過陣列中最大值左邊部分構造出的最大二叉樹。右子樹是通過陣列中最大值右邊部分構造出的最大二叉樹。通過給定的陣列構建最大二叉樹,並且輸出這個樹的根節點。示例 給定的陣列的大小在 1,1...
654 最大二叉樹
給定乙個不含重複元素的整數陣列 nums 乙個以此陣列直接遞迴構建的 最大二叉樹 定義如下 二叉樹的根是陣列 nums 中的最大元素。左子樹是通過陣列中 最大值左邊部分 遞迴構造出的最大二叉樹。右子樹是通過陣列中 最大值右邊部分 遞迴構造出的最大二叉樹。返回有給定陣列 nums 構建的 最大二叉樹 ...