Menu
CoddyTech

Add Two Numbers

Otrzymujesz dwie nieujemne liczby całkowite, z których każda jest zapisana jako jednokierunkowa lista wiązana cyfr, z najmniej znaczącą cyfrą na początku. W pierwszej liście węzeł i przechowuje cyfrę values1[i] i wskazuje na węzeł next1[i]. Druga lista działa tak samo, używając next2 i values2. W obu listach -1 oznacza koniec listy, a głową jest węzeł 0. Węzły nie są przechowywane w kolejności listy, więc podążaj za wskazaniami.

Zwróć cyfry sumy tych dwóch liczb, zaczynając od najmniej znaczącej cyfry.

Funkcja

addTwoNumbers(next1: integer-array, values1: integer-array, next2: integer-array, values2: integer-array) → integer-array
next1integer-array
indeks węzła, do którego prowadzi każdy węzeł pierwszej liczby, lub -1 w przypadku jej ostatniego węzła
values1integer-array
cyfra przechowywana w każdym węźle pierwszej liczby
next2integer-array
indeks węzła, do którego prowadzi każdy węzeł drugiej liczby, lub -1 dla jej ostatniego węzła
values2integer-array
cyfra przechowywana w każdym węźle drugiej liczby
Zwracainteger-array
cyfry sumy, zaczynając od najmniej znaczącej

Ograniczenia

  • 1 ≤ L1 ≤ 100, gdzie L1 jest długością next1 i values1.
  • 1 ≤ L2 ≤ 100, gdzie L2 jest długością next2 i values2.
  • 0 ≤ values1[i], values2[j] ≤ 9
  • Każdy element next1 ma wartość -1 lub jest indeksem węzła z pierwszej listy, a każdy element next2 ma wartość -1 lub jest indeksem węzła z drugiej listy.
  • Rozpoczynając od węzła 0, każda z list odwiedza każdy ze swoich węzłów dokładnie raz, a następnie dociera do -1. Nie ma cyklu.
  • Żadna liczba nie ma zer wiodących: ostatni węzeł listy przechowuje cyfrę inną niż 0, chyba że lista zawiera tylko jedną cyfrę 0.

Przykłady

Wejście
next1 = [2, -1, 1]values1 = [8, 6, 1]next2 = [2, -1, 1]values2 = [7, 5, 2]
Wyjście
[5, 4, 1, 1]
Wyjaśnienie
Pierwsza lista odwiedza węzły 0, 2, 1 i odczytuje 8, 1, 6, czyli liczbę 618. Druga odczytuje 7, 2, 5, czyli liczbę 527. Ich suma wynosi 1145, więc odpowiedzią jest 5, 4, 1, 1.
challenge icon

Pytanie dodatkowe

Jak dodawać liczby, jeśli listy przechowują najbardziej znaczącą cyfrę jako pierwszą?

Zresetuj kod
def addTwoNumbers(next1, values1, next2, values2):
    # Napisz kod tutaj

Test #1

Test #2

Test #3

Argumenty

next1 = [2, -1, 1]
values1 = [8, 6, 1]
next2 = [2, -1, 1]
values2 = [7, 5, 2]

Oczekiwany wynik

[5, 4, 1, 1]