给出一个整数数组。
例如a = {1,2,20,19} 让两个不相交的子阵列为{1,2}和{20,19}。有5种这样的排列,其中'1'总是在'2'之前,'20'总是在'19'之前,这样的排列是:
我的问题是:
给定一个数组,大小为[1 ... n + m] = n + m。求出两个子阵列a [1..n]和[n + 1..n + m]中元素的相对顺序保持不变的排列数。
答案 0 :(得分:1)
在您的示例中,它将是6个排列。你错过了{20,1,2,19}。
这是一个纯粹的数学(组合学)问题。这个问题相当于 -
找到等式的所有可能解的数量:
x0+x1+....+xn = m
答案由公式 - (n+m)!/(m!n!)
例如,在您的情况下,它将是n=m=2
,答案是4!/2!2! = 6