我有下面的代码。方法 sum_to_n?
接受一个整数数组 arr
和一个整数 n
作为参数,如果有任何两个元素则返回 true
arr
总和为 n
。对于 n
为零的空 arr
,它应该返回 true
,但一直返回 false
。
def sum_to_n?(arr, n)
hash = Hash.new(0)
arr.each do |val|
if hash.key? val
return true
else
hash[n-val] = val
end
end
return false
end
我做错了什么?
最佳答案
较短的版本:
def sum_to_n?(arr, n)
(arr.empty? && n.zero?) || arr.permutation(2).any? { |a, b| a + b == n }
end
关于ruby - 定义方法 `sum_to_n?`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19351337/