2015-06-10 48 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]