gpt4 book ai didi

ruby - Codility 置换赋值

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:59:59 27 4
gpt4 key购买 nike

我正在 codility.com 上执行排列任务。目标基本上是检查数组是否作为与排列大小完全匹配的一个元素传递。 IE。对于 array size N,它应该包含值 1,2,3...N,每个值恰好一次。我设法让逻辑正确,尽管我在复杂性上的分数很糟糕 0(N**2)。我该如何改进?

def solution(a)
return 0 unless a.uniq == a
set = (1..a.size).to_a
for n in set
return 0 unless a.include? n
end
1
end

最佳答案

我倾向于按如下方式进行。我没有处理 a 为空或包含除 Fixnums 以外的元素的可能性。

def solution(a)
(a.uniq == a && a.min == 1 && a.max == a.size) ? 1 : 0
end

solution([1,2,3,4,5]) #=> 1
solution([1,2,5,3,4]) #=> 1
solution([1,2,3,5,6]) #=> 0
solution([1,2,5,4,2]) #=> 0
solution([1,2,2,4,5]) #=> 0
solution([1,2,5,4,6]) #=> 0

关于ruby - Codility 置换赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24295767/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com