Product of Array Except Self (no division)

متوسط
توضیحات

صورت مسئله

با دریافت یک آرایه nums، آرایه‌ای به نام answer بسازید که در آن answer[i] برابر با حاصل‌ضرب تمام عناصر آرایه‌ی nums به‌جز عنصر nums[i] باشد. استفاده از تقسیم ممنوع است.

قوانین

  1. استفاده از عملگر تقسیم مجاز نیست (/ یا //). داور کد ارسال‌شده را از نظر وجود این عملگرها بررسی می‌کند؛ بنابراین، بررسی خروجی به‌تنهایی برای تشخیص تقلب کافی نیست، زیرا محاسبه‌ی حاصل‌ضرب کل عناصر و سپس تقسیم آن بر عنصر موردنظر، همان خروجی را تولید می‌کند (به‌جز در حالت وجود صفر که می‌توان آن را به‌صورت جداگانه مدیریت کرد).
  2. آرایه می‌تواند شامل مقادیر صفر باشد؛ حتی ممکن است یک یا چند صفر در آن وجود داشته باشد.
  3. طول آرایه‌ی خروجی باید با طول آرایه‌ی ورودی برابر باشد.

محدودیت‌ها

  • 2 <= len(nums) <= 10^5
  • -30 <= nums[i] <= 30
  • حاصل‌ضرب تمام عناصر هر پیشوند و پسوند آرایه در محدوده‌ی یک عدد صحیح علامت‌دار ۳۲ بیتی قرار می‌گیرد (این محدودیت در پایتون اهمیتی ندارد و صرفاً برای سازگاری با زبان‌های برنامه‌نویسی دیگر ذکر شده است).
نمونه تست‌کیس‌ها
ورودی (Input)
[1,2,3,4]
خروجی (Output)
[24,12,8,6]
ورودی (Input)
[1,2,0,3]
خروجی (Output)
[0,0,6,0]
ورودی (Input)
[-1,-2,-3,-4]
خروجی (Output)
[-24,-12,-8,-6]

شروع چالش

برای دسترسی به محیط کدنویسی آنلاین و ارسال راه‌حل، ثبت‌نام کنید.

ثبت‌نام و شروع

قبلاً ثبت‌نام کرده‌اید؟ وارد شوید

آمار و محدودیت‌ها

۲۰ XP
پاداش
۲s
زمان مجاز
۲۵۰ MB
حافظه مجاز
۱
شروع
۱
حل شده

زبان‌های مجاز

python