Мне удалось заставить этот код работать локально, но он потерпел неудачу в рейтинге хакеров. Я перепробовал много комбинаций, но, должно быть, что-то упустил.Я не понимаю, почему sum += x
выдает ошибку массива на основе вывода
Я получаю эту ошибку:
solution.rb: 24: в `+ ': массив не может бытьприведено к Integer (TypeError)
def diagonalDifference(arr)
arr.each do |e|
p e
end
the_arr = arr.dup
left_to_right(3, the_arr)
end
def left_to_right(the_size, the_data)
sum = 0
(0..the_size-1).each do |diagonal|
this_value = (the_size * diagonal) + diagonal
p "v= " + this_value.to_s
x = the_data[this_value]
p "this_sum= " + x.to_s
sum += x # <-- line 24
end
sum
end
Debug output
[11, 2, 4]
[4, 5, 6]
[10, 8, -12]
"v= 0"
"this_sum= [[11, 2, 4], [4, 5, 6], [10, 8, -12]]"
arr would be a value such as [1,2,3,9,8,7,-4,-5,-4]
Похоже, проблема связана с
the_data[this_value]
вместо того, чтобы получить значение, которое, возможно, я получаю массив?