例如,给定A = [1, 2, 1, 1]
,函数应该返回3。
仅创建三个不同的序列:(1, 2, 1), (1, 1, 1) and (2, 1, 1)
. 这个例子的正确答案是3。
给定A = [1, 2, 3, 4]
,函数应该返回4。有四种方式:(1, 2, 3), (1, 2, 4), (1, 3, 4) and (2, 3, 4)
。
给定A = [2, 2, 2, 2]
,函数应该返回1。只有一种方法:(2, 2, 2)
.
给定A = [2, 2, 1, 2, 2]
,函数应该返回4。有四种方式:(1, 2, 2), (2, 1, 2), (2, 2, 1) and (2, 2, 2)
。
给定A = [1, 2]
,函数应该返回0
为以下假设编写一个有效的算法:
N 是 [0..100,000] 范围内的整数;数组 A 的每个元素都是 [1..N] 范围内的整数。
下面是我的蛮力解决方案!
我想知道是否有人有更好更优化的解决方案?
检测到此解决方案的时间复杂度: O(N**3*log(N)) or O(N**4)
茅侃侃
慕的地8271018
相关分类