我有以下二郎代码:
lists:all(fun(Element) -> somefunction(TestCase -- [Element]) end, TestCase).
其中 TestCase 是一个数组。我正在尝试遍历缺少一个元素的列表/数组。
--
问题是这段代码在最坏的情况下需要 O(N^2) 时间,因为每次调用TestCase 数组的副本。在非函数式语言中有一个明确的 O(N) 解决方案。
saved = TestCase[0]
temp = 0
NewTestCase = TestCase[1:]
for a in range(length(NewTestCase)):
somefunction(NewTestCase)
temp = NewTestCase[a]
NewTestCase[a] = saved
saved = temp
... 或类似的东西。
erlang中是否有O(N)解决方案?