Menu
CoddyTech

Product of Array Except Self

Vous recevez un tableau d’entiers nums. Renvoyez un tableau answer de même longueur, où answer[i] est le produit de tous les éléments de nums, sauf celui à l’indice i. Faites-le en O(n) et sans utiliser la division.

Fonction

productExceptSelf(nums: integer-array) → integer-array
numsinteger-array
le tableau d’entiers, comportant au moins deux éléments
Renvoieinteger-array
un tableau dont la valeur à l’indice i est le produit de tous les éléments sauf nums[i]

Contraintes

  • 2 ≤ nums.length ≤ 104
  • -30 ≤ nums[i] ≤ 30
  • Le produit de toutes les valeurs non nulles dans nums tient dans un entier signé de 32 bits, donc chaque produit que tu calcules en cours de route tient également.

Exemples

Entrée
nums = [2, 3, 4, 5]
Sortie
[60, 40, 30, 24]
Explication
En omettant le 2, il reste 3 × 4 × 5 = 60, et en omettant le 5, il reste 2 × 3 × 4 = 24. Les deux nombres du milieu fonctionnent de la même manière : 2 × 4 × 5 = 40 et 2 × 3 × 5 = 30.

lock icon+14 tests cachés à la soumission

challenge icon

Pour aller plus loin

Peux-tu utiliser uniquement O(1) espace supplémentaire, sans compter le tableau que tu renvoies ?

Réinitialiser le code
def productExceptSelf(nums):
    # Écrivez le code ici
Cas de test

Cas 1

Cas 2

Cas 3

Entrée

nums = [2, 3, 4, 5]

Attendu

[60, 40, 30, 24]