Rotate n×n Matrix 90° Clockwise In Place

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

صورت مسئله

یک ماتریس مربعی را ۹۰ درجه در جهت عقربه‌های ساعت، به‌صورت درجا (in place) بچرخانید؛ یعنی بدون ایجاد ماتریس جدید، تغییرات را روی همان ماتریس اعمال کنید.

قوانین

  1. چرخش باید در جهت عقربه‌های ساعت (clockwise) باشد، نه خلاف جهت عقربه‌های ساعت (counter-clockwise). مثال زیر جهت چرخش را به‌وضوح مشخص می‌کند.
  2. تابع هیچ مقداری برنمی‌گرداند؛ بلکه باید ماتریسی را که به آن داده شده است، مستقیماً تغییر دهد (mutate). برنامه‌ی اصلی (driver) پس از فراخوانی تابع، ماتریس را چاپ می‌کند.
  3. عملیات باید به‌صورت درجا (in place) انجام شود؛ تخصیص یک ماتریس جدید با ابعاد n×n برای این مسئله مجاز نیست، حتی اگر همان خروجی را تولید کند.
  4. ماتریس ورودی همیشه مربعی (n×n) است.

محدودیت‌ها

  • 1 <= n <= 20
  • -1000 <= matrix[i][j] <= 1000
نمونه تست‌کیس‌ها
ورودی (Input)
[[1,2,3],[4,5,6],[7,8,9]]
خروجی (Output)
[[7,4,1],[8,5,2],[9,6,3]]
ورودی (Input)
[[1,2],[3,4]]
خروجی (Output)
[[3,1],[4,2]]
ورودی (Input)
[[-1,-2],[-3,-4]]
خروجی (Output)
[[-3,-1],[-4,-2]]

شروع چالش

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

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

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

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

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

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

python