合并两个排序的数组不起作用

时间:2015-06-10 03:11:30

标签: arrays ruby sorting

尝试解决涉及合并两个已排序数组而不使用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]作为两个参数运行时,它会给我一个Fixnumnil错误的比较,我无法绕过它。这似乎是一个简单的修复,但似乎没有任何工作。

1 个答案:

答案 0 :(得分:1)

while num > arr2[i] && arr2[i] != nil

您使用的是错误的条件。根据{{​​1}}的短路规则,在左侧检查&&

nil