解决方案


方法:数学

思路

让我们试着统计具有最小值 A[i] 和最大值 A[j] 的子序列的数量。

算法

我们可以对数组进行排序,因为这并不会改变答案。对数组进行排序后,我们可以得知有最小值 A[i] 和最大值 A[j] 的子序列的数目是 。因此,期望的答案为:

复杂度分析

  • 时间复杂度:,其中 A 的长度。

  • 空间复杂度:pow2 所用的空间。(我们可以通过动态地计算这些乘方将其改进到 )。