假设我有两个大小数组m
和n
:
a[1] a[2] a[3] ..... a[m]
和
b[1] b[2] b[3] ..... b[n]
我想形成一个合并这两个数组的新数组,这样在新的m + n
元素数组中,a[i]
总是放置在之前a[i + 1]
并且b[i]
总是放置在之前b[i + 1]
。例如,a[1] a[2] b[1] b[2]... b[n] a[m]
将是一个有效的数组,但a[2] a[1] b[1] b[2] ... b[n] a[m]
不会。给定m
和n
,当允许重复时,有多少这样的组合是可能的?
我有解决问题的直觉:
- b[1] - b[2] - b[3] - ..... - b[n]
我可以放置在数组内的a[1]
任何位置,考虑到前面和最后一个位置,我有完全的放置方式。如果我首先放置(就在之前),我现在可以放置在位置。但如果我刚刚放置,我将有办法放置。我可以将这种方法递归地应用于所有where 。但是我找不到任何数学公式来表达解决方案,除了允许重复时我无法理解如何处理。n - 1
b
n + 1
a[1]
a[1]
b[1]
a[2]
n + 1
a[1]
b[1]
n
a[2]
a[i]
1 <=i <= n