我想定义一个函数
invert :: [Int] -> [Int]
假设其输入是
[0..(n-1)]
的排列,并返回它的倒数。是否可以仅使用列表和元组(没有数组)来定义它,以便它在线性时间内运行?这主要是出于学术兴趣;在实际代码中,我可能会使用
Array
或 STArray
或类似的。
最佳答案
不确定线性时间,只是一个初学者笔记。
λ> (\x -> map snd $ sort $ zip x [1..(length x)]) [3,8,5,10,9,4,6,1,7,2]
[8,10,1,6,3,7,9,2,5,4]
关于list - 在线性时间内反转排列,仅使用列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8322238/