2020/08/30第204场周赛
1569. 将子数组重新排序得到BST
这道题目首先需要找到关键点,再给定了根节点之后,第一个大于根节点和第一个小于根节点的数字必须是固定的,这决定了左右子树的根节点。因此我们知道,这个树除了根节点还具有n
个字节点,其中,大于根节点的也就是右子树有m
个点,因此我们可以选取 C n m C_n^m Cnm个位置放置,剩下的位置自然就是左子树。然后左右子树都还存在自身的排列,因此可以递归的求解。
注意这里求解组合数的方法利用了组合数的性质: C n m = C n − 1 m + C n − 1 m − 1 C_n^m = C_{n-1}^{m}+C_{n-1}^{m-1} Cnm=Cn−1m+