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.

lock icon+14 בדיקות נסתרות בשליחה

challenge icon

שאלת המשך

האם אפשר להשתמש רק ב־O(1) מקום נוסף, בלי לספור את המערך שמחזירים?

איפוס הקוד
def productExceptSelf(nums):
    # כתבו כאן את הקוד
מקרי בדיקה

מקרה 1

מקרה 2

מקרה 3

קלט

nums = [2, 3, 4, 5]

צפוי

[60, 40, 30, 24]