奇怪的用法我花了一點時間今天解決了平衡指數的問題(描述here)紅寶石平衡指數 - 中注入
寫我自己的解決方案(其中有大量表現不佳)後,我決定找一個那將是一個完美的分數。我發現這個(which Codility scores as 100/100):
def equi(a)
left, right = 0, a.inject(0, &:+)
indices = []
a.each_with_index do |val, i|
right -= val
indices << i if right == left
left += val
end
indices
end
我不明白的是,在該方法的頂部片並行分配和使用注射的。有人能夠描述這是在做什麼?
非常感謝! 斯圖
非常感謝@邁克爾科爾的解釋。我需要閱讀並行作業。有一點讓我更加奇怪的是,當我在賦值行之後插入一個調試器時,'left'和'right'的值都是0.我不應該期望'right'是val的總和該階段的數組?還是稍後評估? – Stu
並行分配並不完全特殊。如果'a'爲空,'right'只應該爲0。 –