의 이상한 사용이 나는 (많은 수의 심하게 수행) 내 자신의 솔루션을 작성 후 (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
내가 이해하지 못하는 것은 방법의 상단에 평행 할당 및 분사의 사용의 조각입니다. 누구가이 일을 설명 할 수 있습니까?
감사합니다. 스투 그것은 배열의 단순한 합이다
설명을위한 많은 감사합니다 @Michael Kohl. 나는 평행 배정을 읽을 필요가있다. 이 이상한 일을 한 가지는 할당 선 뒤에 디버거를 꽂았을 때 '왼쪽'과 '오른쪽'의 값이 모두 0입니다. '오른쪽'이 값의 합이 될 것으로 예상해서는 안됩니다. 그 단계의 배열? 또는 나중에 평가됩니까? – Stu
병렬 할당이 반드시 특별하지는 않습니다. 'right'는'a'가 비어있는 경우에만 0이어야합니다. –