В этом уроке я объясню, как работает рекурсия при решении многомерного массива.
представим, что мы хотим найти сумму этого массива:
[3, 5, [6], 7, [10, [9, 1]]]
- создайте переменную сумму и сделайте ее равной 0, чтобы у нас было место для сохранения суммы.
- в цикле for мы проверяем переменную по индексу, если это массив, если нет, мы суммируем число
, когда индекс = 0, сумма + = 3, сумма = 3
, когда индекс = 1, сумма + = 5, сумма = 8 - когда index = 2, это массив, мы запускаем новую функцию
сумма внутри новой функции начинается с 0,
index = 0, sum + = 6, sum = 6
конец 1 цифры for-loop
теперь мы возвращаем эту сумму = 6
конец 1-й рекурсии - мы выходим из рекурсии,
беря 6, возвращаемые функцией
, и складываем сумму, которую мы получили из индекса 1
, так что теперь сумма будет 14 - когда index = 3, sum + = 7, sum = 21
- когда index = 4, это массив, рекурсия 1
при index = 0, sum + = 10, sum = 10 - при индексе = 1, рекурсии 2
при индексе = 0, сумме + = 9, сумме = 9
при индексе = 1, сумме + = 1, сумме = 10
конец массива, возврат суммы = 10 - захватывая 10 возврат из рекурсии 2
и добавляем сумму, полученную из индекса 4, которая равна 10
, поэтому сумма теперь будет 20
конец массива, возврат 20 - добавить сумму, которую мы получили перед переходом к рекурсии, которая равна 21, с
суммой, возвращаемой рекурсией, которая равна 20 - мы получили итоговую сумму = 41