-4
選擇從陣列的連續整數我想從陣列選擇連續的整數,例如:在紅寶石
輸入:(不必進行排序)
array = [1, 3, 6, 7, 8, 9, 10, 12, 13, 17]
預期輸出:
#=> [6, 7, 8, 9, 10, 12, 13]
這是我到目前爲止的代碼:
array = [1, 3, 9, 6, 7, 10, 8, 12, 13, 17]
newarray = []
z = 0
array.sort.each_cons(2) do |x, y|
if y == x + 1
if z == 0
newarray.insert(0, x, y)
else
newarray.push(y)
end
end
z = z + 1
end
newarray #=> [7, 8, 9, 10, 13]
正如您所見,6
和12
丟失。
我的代碼出了什麼問題,除了bug之外,還有更好的方法來寫它嗎?
有一個Stack Exchange站點專門爲代碼審查這可能是一個更好的地方要問:HTTP ://codereview.stackexchange.com/您還應該提供更多示例輸入和輸出,並解釋您的代碼*應該*做的事情。例如。 '[1,2,3,6,5]'的正確輸出是否應該是'[1,2,3,6]'(即它會錯過5的值)? –
更正了問題@NeilSlater –
用英文書寫時請使用英文標點符號。 – sawa