方法:回溯

思路和算法

只有 4 张牌,且只能执行 4 种操作。即使所有运算符都不进行交换,最多也只有 种可能性,这使得我们可以尝试所有这些可能。具体来说,我们有 12 种方式先选出两个数字(有序),并执行 4 种操作之一(12 * 4)。然后,剩下 3 个数字,我们从中选择 2 个并执行 4 种操作之一(6 * 4)。最后我们剩下两个数字,并在 2 * 4 种可能之中作出最终选择。

我们将对我们的数字或结果数字执行 3 次二元运算(+, -, *, / 是运算)。因为 -/ 不满足交换律,我们必须仔细考虑 a / bb / a

对于在我们的列表中移除 a, b 这两个数字的每一种方法,以及它们可能产生的每种结果,如 a + ba / b等,我们将采用递归的方法解决这个较小的数字列表上的问题。

复杂度分析

  • 时间复杂度:,总计 9216 种可能的硬性限制,对于每种可能,我们执行操作的复杂度为

  • 空间复杂度:,我们的中间数组最多有 4 个元素,所生成的数字由复杂度 的因子限定。