Leetcode Challenge
22 subscribers
1 photo
42 links
Пытаюсь решать задачки с leetcode
加入频道
[Условие] Leetcode #2. Add two numbers

Ссылка на задачу на Leetcode
Решение

Есть два связных списка, каждый из которых представляет неотрицательное число. Цифры (разряды) при этом идут в обратном порядке.
Узел связного списка представлен классом ListNode с полями val и next.

Пример: число 307 будет выглядеть как [7, 0, 3] - соответственно каждое число - это объект ListNode.

Задача: нужно сложить два этих неотрицательных числа, представленных в виде списков, и вернуть результат тоже в виде связного списка.


Пример 1:
l1 = [2,4,3]
l2 = [5,6,4]
Output: [7,0,8]
Объяснение: 342 + 465 = 807

Пример 2:
l1 = [0]
l2 = [0]
Output: [0]

Пример 3:
l1 = [9,9,9,9,9,9,9]
l2 = [9,9,9,9]
output = [8,9,9,9,0,0,0,1]


Ограничения:
- ведущих нулей у чисел нет, но число вполне может быть равно нулю
- в каждом списке от 1 до 100 узлов
- каждый узел имеет значение от 0 до 9

#medium #linkedlists

@leetcode_furrycat
[Решение] Leetcode #2. Add two numbers

Условие задачи

Решение основано на правиле сложения в столбик. Так как оба числа у нас идут с конца, мы можем последовательно складывать их разряды - а результат записывать в новый связный список. Не забываем про переходящие через разряд значения ("0 пишем, 1 в уме").

Продолжаем складывать до тех пор, пока хотя бы у одного числа остаются разряды. И не забываем добавить то, что "в уме", если разряды вдруг кончились.

Видео решения

#medium #linkedlists

@leetcode_furrycat