尝试解决涉及合并两个已排序数组而不使用sort方法的问题。到目前为止,这是我的代码:
def combine(arr1, arr2)
result = []
i = 0
arr1.each do |num|
while num > arr2[i] && arr2[i] != nil
result << arr2[i]
i += 1
end
result << num
end
result
end
当我使用[1, 9, 10, 12], [2, 5, 6, 8]
作为两个参数运行时,它会给我一个Fixnum
到nil
错误的比较,我无法绕过它。这似乎是一个简单的修复,但似乎没有任何工作。
答案 0 :(得分:1)
while num > arr2[i] && arr2[i] != nil
您使用的是错误的条件。根据{{1}}的短路规则,在左侧检查&&
:
nil