Menu
CoddyTech

Product of Array Except Self

Trung bìnhTổng tiền tốpython iconjava iconcpp iconc iconjs icon+10

Bạn nhận được một mảng số nguyên nums. Hãy trả về một mảng answer có cùng độ dài, trong đó answer[i] là tích của mọi phần tử trong nums ngoại trừ phần tử ở chỉ số i. Hãy thực hiện trong thời gian O(n) và không dùng phép chia.

Hàm

productExceptSelf(nums: integer-array) → integer-array
numsinteger-array
mảng số nguyên có ít nhất hai phần tử
Trả vềinteger-array
một mảng có giá trị tại chỉ số i là tích của tất cả phần tử ngoại trừ nums[i]

Ràng buộc

  • 2 ≤ nums.length ≤ 104
  • -30 ≤ nums[i] ≤ 30
  • Tích của tất cả giá trị khác 0 trong nums nằm trong phạm vi của một số nguyên (integer) có dấu 32 bit, vì vậy mọi tích bạn tính trong quá trình thực hiện cũng nằm trong phạm vi đó.

Ví dụ

Đầu vào
nums = [2, 3, 4, 5]
Đầu ra
[60, 40, 30, 24]
Giải thích
Bỏ số 2 thì còn 3 × 4 × 5 = 60. Tương tự, bỏ số 3, số 4 hoặc số 5 thì lần lượt được 40, 30 và 24.
challenge icon

Câu hỏi mở rộng

Bạn có thể chỉ dùng thêm không gian O(1), không tính mảng mà bạn trả về không?

Đặt lại code
def productExceptSelf(nums):
    # Viết code ở đây

Kiểm thử #1

Kiểm thử #2

Kiểm thử #3

Đối số

nums = [2, 3, 4, 5]

Đầu ra mong đợi

[60, 40, 30, 24]