Сложность: easy
Массивная форма целого числа num - это массив, представляющий его цифры в порядке слева направо.
Например, для num = 1321, массивная форма - это [1, 3, 2, 1].
Дано num в массивной форме целого числа и целое число k, верните массивную форму числа num + k.
Пример:
Input: num = [1,2,0,0], k = 34
Output: [1,2,3,4]
Explanation: 1200 + 34 = 1234
👨💻 Алгоритм:
1⃣Инициализация переменных:
Преобразуйте число k в массив его цифр и переверните оба массива (массив num и массив цифр k).
Завести переменную carry для хранения переноса и инициализировать ее нулем.
Создать пустой массив result для хранения результата.
2⃣Сложение массивов:
Пройдите по элементам массивов num и цифр k, начиная с их конца, сложите соответствующие цифры вместе с переносом (carry).
Если сумма больше 9, сохраните последнюю цифру в текущей позиции результата, а carry установите в 1.
Если сумма меньше 10, установите carry в 0.
Добавьте результат текущего сложения в массив result
3⃣Обработка оставшихся цифр и переноса:
Если один из массивов закончился раньше, продолжайте сложение оставшихся цифр другого массива с переносом.
Если после окончания всех сложений остается перенос (carry), добавьте его в начало массива result.
Переверните массив result обратно и верните его.
😎 Решение:
class Solution {
function addToArrayForm($num, $k) {
$result = [];
$n = count($num);
for ($i = $n - 1; $i >= 0; $i--) {
$k += $num[$i];
array_unshift($result, $k % 10);
$k = intdiv($k, 10);
}
while ($k > 0) {
array_unshift($result, $k % 10);
$k = intdiv($k, 10);
}
return $result;
}
}Ставь 👍 и забирай 📚 Базу знаний