Menu
CoddyTech

Product of Array Except Self

لديك مصفوفة من الأعداد الصحيحة nums. أعد مصفوفة answer بالطول نفسه، بحيث تكون answer[i] حاصل ضرب كل عنصر في nums باستثناء العنصر الموجود عند الفهرس i. نفّذ ذلك في زمن O(n) ومن دون استخدام القسمة.

الدالة

productExceptSelf(nums: integer-array) → integer-array
numsinteger-array
مصفوفة الأعداد الصحيحة، التي تحتوي على عنصرين على الأقل
تُرجعinteger-array
مصفوفة تكون قيمتها عند الفهرس i حاصل ضرب جميع العناصر باستثناء nums[i]

القيود

  • 2 ≤ nums.length ≤ 104
  • -30 ≤ nums[i] ≤ 30
  • حاصل ضرب جميع القيم غير الصفرية في nums يقع ضمن نطاق عدد صحيح موقّع من 32 بت، لذا فإن كل حاصل ضرب تحسبه في أثناء ذلك يقع ضمن هذا النطاق أيضًا.

أمثلة

المدخلات
nums = [2, 3, 4, 5]
المخرجات
[60, 40, 30, 24]
الشرح
عند استبعاد العدد 2، يتبقى 3 × 4 × 5 = 60، وعند استبعاد العدد 5، يتبقى 2 × 3 × 4 = 24. وينطبق الأمر نفسه على العددين الأوسطين: 2 × 4 × 5 = 40 و2 × 3 × 5 = 30.
challenge icon

سؤال إضافي

هل يمكنك استخدام مساحة إضافية O(1) فقط، دون احتساب المصفوفة التي تُعيدها؟

إعادة ضبط الشيفرة
def productExceptSelf(nums):
    # اكتب الكود هنا

اختبار #1

اختبار #2

اختبار #3

وسيط

nums = [2, 3, 4, 5]

الإخراج المتوقع

[60, 40, 30, 24]