|
|
1
17
您可以将代码更改为下面这样的代码,以增加复杂性
|
|
|
2
5
正如@darkvalance所写的功能性方法,但有评论:
|
|
|
3
3
回答你的问题-是O(n*n),因为
因此,算法的时间复杂度将为O(N*N) |
|
|
4
2
我的java代码 O(N)
} |
|
|
5
2
我的python代码O(N)
|
|
|
6
2
功能进近O(N)。累计提供列表的累计运行和。我们可以用列表的和以及每个点的累积和来计算两个数组之间的差。
|
|
|
7
2
|
|
|
8
1
目前,您正在中反复计算总和
区别在于
可以通过执行以下操作来计算同一循环中的第一个\u磁带和:
所以解决方案是
|
|
|
9
0
这里我还添加了一个检查,以确定数组的元素何时为0
|
|
|
10
0
这是我对磁带平衡问题的原始解决方案
不幸的是,Codibility不允许为本课程导入NumPy模块。因此,这就是导入IterTools模块而不是NumPy的解决方案,它(最终)产生了全面的100%结果:
多亏了darkvalance的IterTools解决方案,以及坚韧的Raptor(非常有启发性的)对所用逻辑的澄清。 还要感谢Jun Jang尝试了两条分割带的解决方案,该解决方案表明非线性累积可以提供多条“带对”,因为相同的最小绝对差值可以出现在“带”上的多个平衡点上。 darkvalance提供的IterTools解决方案不仅提供了完全相同的结果,而且看起来非常像Pythonic,在97%以上的测试中(在对100000个元素的阵列进行了100000次测试之后),它的性能超过了Three NumPy Arrays解决方案。 祝贺我希望有一天我的代码会像你的一样。 |
|
11
0
此代码段也是一种可能的解决方案
|