Menu
CoddyTech

Add Two Numbers

Bạn nhận được hai số nguyên không âm, mỗi số được lưu dưới dạng danh sách liên kết đơn gồm các chữ số, với chữ số có giá trị nhỏ nhất đứng trước. Trong danh sách thứ nhất, nút i chứa chữ số values1[i] và liên kết đến nút next1[i]. Danh sách thứ hai hoạt động tương tự, với next2 và values2. Trong cả hai danh sách, -1 đánh dấu kết thúc danh sách và nút đầu là nút 0. Các nút không được lưu theo thứ tự trong danh sách, vì vậy hãy lần theo các liên kết.

Trả về các chữ số của tổng hai số, với chữ số có giá trị nhỏ nhất đứng trước.

Hàm

addTwoNumbers(next1: integer-array, values1: integer-array, next2: integer-array, values2: integer-array) → integer-array
next1integer-array
chỉ số của nút mà mỗi nút của số thứ nhất liên kết đến, hoặc -1 nếu đó là nút cuối cùng
values1integer-array
chữ số mà mỗi nút của số thứ nhất lưu giữ
next2integer-array
chỉ số của nút mà mỗi nút của số thứ hai liên kết đến, hoặc -1 nếu đó là nút cuối cùng
values2integer-array
chữ số được lưu trong mỗi nút của số thứ hai
Trả vềinteger-array
các chữ số của tổng, bắt đầu từ chữ số hàng thấp nhất

Ràng buộc

  • 1 ≤ L1 ≤ 100, trong đó L1 là độ dài của next1 và values1.
  • 1 ≤ L2 ≤ 100, trong đó L2 là độ dài của next2 và values2.
  • 0 ≤ values1[i], values2[j] ≤ 9
  • Mỗi phần tử của next1 là -1 hoặc chỉ số nút trong danh sách thứ nhất, và mỗi phần tử của next2 là -1 hoặc chỉ số nút trong danh sách thứ hai.
  • Bắt đầu tại nút 0, mỗi danh sách đi qua tất cả các nút đúng một lần rồi đến -1. Không có chu trình.
  • Không có số nào bắt đầu bằng số 0: nút cuối cùng của một danh sách chứa chữ số khác 0, trừ khi danh sách chỉ có chữ số 0.

Ví dụ

Đầu vào
next1 = [2, -1, 1]values1 = [8, 6, 1]next2 = [2, -1, 1]values2 = [7, 5, 2]
Đầu ra
[5, 4, 1, 1]
Giải thích
Danh sách đầu tiên duyệt qua các nút 0, 2, 1 và đọc được 8, 1, 6, tạo thành số 618. Danh sách thứ hai đọc được 7, 2, 5, tạo thành số 527. Tổng của chúng là 1145, vậy đáp án là 5, 4, 1, 1.
challenge icon

Câu hỏi mở rộng

Bạn sẽ cộng các số như thế nào nếu danh sách lưu chữ số có giá trị lớn nhất ở đầu?

Đặt lại code
def addTwoNumbers(next1, values1, next2, values2):
    # Viết code ở đây

Kiểm thử #1

Kiểm thử #2

Kiểm thử #3

Đối số

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

Đầu ra mong đợi

[5, 4, 1, 1]