2015-06-10 45 views
0

试图解决不使用排序方法合并两个排序数组的问题。这里是我到目前为止的代码:合并两个排序后的数组无法正常工作

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
while num > arr2[i] && arr2[i] != nil 

您使用的是错误的条件。据&&短路规则,把检查nil左侧:

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