برنامه نویسی

3264. حالت آرایه نهایی پس از عملیات ضرب K I

Summarize this content to 400 words in Persian Lang
3264. حالت آرایه نهایی پس از عملیات ضرب K I

سختی: آسان

موضوعات: Array، Math، Heap (Priority Queue)، Simulation

به شما یک آرایه عدد صحیح داده می شود nums، یک عدد صحیح k، و یک عدد صحیح multiplier.

شما باید اجرا کنید k عملیات بر روی nums. در هر عملیات:

حداقل مقدار را پیدا کنید x در nums. اگر چند مورد از حداقل مقدار وجود دارد، موردی را که ظاهر می شود انتخاب کنید اول.
حداقل مقدار انتخاب شده را جایگزین کنید x با x * multiplier.

بازگشت یک آرایه عدد صحیح که حالت نهایی را نشان می دهد nums بعد از انجام همه k عملیات.

مثال 1:

ورودی: اعداد= [2,1,3,5,6]، k = 5، ضریب = 2

خروجی: [8,4,6,5,6] توضیح:

| عملیات | نتیجه ||——————-|—————–|| بعد از عمل 1 | [2, 2, 3, 5, 6] || بعد از عمل 2 | [4, 2, 3, 5, 6] || بعد از عمل 3 | [4, 4, 3, 5, 6] || بعد از عمل 4 | [4, 4, 6, 5, 6] || بعد از عمل 5 | [8, 4, 6, 5, 6] |

مثال 2:

ورودی: اعداد= [1,2]، k = 3، ضریب = 4

خروجی: [16,8] توضیح:

| عملیات | نتیجه ||——————-|—————–|| بعد از عمل 1 | [2, 2, 3, 5, 6] || بعد از عمل 2 | [4, 2, 3, 5, 6] || بعد از عمل 3 | [4, 4, 3, 5, 6] || بعد از عمل 4 | [4, 4, 6, 5, 6] || بعد از عمل 5 | [8, 4, 6, 5, 6] |

محدودیت ها:

1 <= nums.length <= 100
1 <= nums[i] <= 100
1 <= k <= 10
1 <= multiplier <= 5

اشاره:

جفت های مرتب شده را حفظ کنید (nums[index], index) در صف اولویت
عملیات را شبیه سازی کنید k بارها

راه حل:

ما باید عملیات را همانطور که در بیانیه مشکل توضیح داده شده است پیاده سازی کنیم. مراحل کلیدی این است که حداقل مقدار را در آرایه پیدا کنید، آن را با مقدار ضرب شده در ضریب داده شده جایگزین کنید و سپس این فرآیند را تکرار کنید. k بارها

با توجه به اینکه باید اولین رخداد حداقل مقدار را انتخاب کنیم و آن را جایگزین کنیم، می‌توانیم با پیگیری شاخص حداقل مقدار در طول هر عملیات به این موضوع نزدیک شویم. پیاده سازی PHP از یک صف اولویت (min-heap) برای بازیابی و به روز رسانی موثر حداقل مقدار در طول هر عملیات استفاده می کند.

بیایید این راه حل را در PHP پیاده سازی کنیم: 3264. حالت آرایه نهایی پس از عملیات ضرب K I

/**
* @param Integer[] $nums
* @param Integer $k
* @param Integer $multiplier
* @return Integer[] */
function finalArrayState($nums, $k, $multiplier) {



/**
* go to ./solution.php
*/
}

// Test Case 1
$nums1 = [2, 1, 3, 5, 6];
$k1 = 5;
$multiplier1 = 2;
$result1 = finalArrayState($nums1, $k1, $multiplier1);
echo “Output: [” . implode(“, “, $result1) . “]\n”;

// Test Case 2
$nums2 = [1, 2];
$k2 = 3;
$multiplier2 = 4;
$result2 = finalArrayState($nums2, $k2, $multiplier2);
echo “Output: [” . implode(“, “, $result2) . “]\n”;
?>

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

توضیح:

مقدار دهی اولیه: حلقه k از زمانی که نیاز به اجرا دارید k عملیات

حداقل مقدار را پیدا کنید:

روی آرایه تکرار کنید nums برای پیدا کردن کوچکترین مقدار و آن شاخص اولین وقوع.

حداقل مقدار را ضرب کنید:

مقدار در شاخص شناسایی شده را با حاصلضرب مقدار فعلی جایگزین کنید multiplier.

تکرار کنید:

مراحل بالا را برای k تکرارها

آرایه نهایی را برگردانید:

آرایه اصلاح شده را پس از تمام عملیات برگردانید.

خروجی تست

برای موارد تست ارائه شده:

مورد آزمایشی 1:

ورودی:

$nums = [2, 1, 3, 5, 6];
$k = 5;
$multiplier = 2;

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

خروجی:

Output: [8, 4, 6, 5, 6]

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

مورد آزمایشی 2:

ورودی:

$nums = [1, 2];
$k = 3;
$multiplier = 4;

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

خروجی:

Output: [16, 8]

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

پیچیدگی

پیچیدگی زمانی:

برای هر یک از k عملیات، یافتن حداقل مقدار در آرایه نیاز دارد O(n).
مجموع: O(kxn)، کجا n اندازه آرایه است.

پیچیدگی فضا:

راه حل استفاده می کند O (1) فضای اضافی

این راه حل به محدودیت ها پایبند است و نتایج مورد انتظار را برای همه موارد آزمایش ارائه می دهد.

لینک های تماس

اگر این مجموعه را مفید یافتید، لطفاً آن را در نظر بگیرید مخزن یک ستاره در GitHub یا اشتراک گذاری پست در شبکه های اجتماعی مورد علاقه خود 😍. حمایت شما برای من اهمیت زیادی دارد!

اگر محتوای مفیدتری مانند این می‌خواهید، در صورت تمایل من را دنبال کنید:

3264. حالت آرایه نهایی پس از عملیات ضرب K I

سختی: آسان

موضوعات: Array، Math، Heap (Priority Queue)، Simulation

به شما یک آرایه عدد صحیح داده می شود nums، یک عدد صحیح k، و یک عدد صحیح multiplier.

شما باید اجرا کنید k عملیات بر روی nums. در هر عملیات:

  • حداقل مقدار را پیدا کنید x در nums. اگر چند مورد از حداقل مقدار وجود دارد، موردی را که ظاهر می شود انتخاب کنید اول.
  • حداقل مقدار انتخاب شده را جایگزین کنید x با x * multiplier.

بازگشت یک آرایه عدد صحیح که حالت نهایی را نشان می دهد nums بعد از انجام همه k عملیات.

مثال 1:

  • ورودی: اعداد= [2,1,3,5,6]، k = 5، ضریب = 2
  • خروجی: [8,4,6,5,6]
  • توضیح:

| عملیات | نتیجه |
|——————-|—————–|
| بعد از عمل 1 | [2, 2, 3, 5, 6] |
| بعد از عمل 2 | [4, 2, 3, 5, 6] |
| بعد از عمل 3 | [4, 4, 3, 5, 6] |
| بعد از عمل 4 | [4, 4, 6, 5, 6] |
| بعد از عمل 5 | [8, 4, 6, 5, 6] |

مثال 2:

  • ورودی: اعداد= [1,2]، k = 3، ضریب = 4
  • خروجی: [16,8]
  • توضیح:

| عملیات | نتیجه |
|——————-|—————–|
| بعد از عمل 1 | [2, 2, 3, 5, 6] |
| بعد از عمل 2 | [4, 2, 3, 5, 6] |
| بعد از عمل 3 | [4, 4, 3, 5, 6] |
| بعد از عمل 4 | [4, 4, 6, 5, 6] |
| بعد از عمل 5 | [8, 4, 6, 5, 6] |

محدودیت ها:

  • 1 <= nums.length <= 100
  • 1 <= nums[i] <= 100
  • 1 <= k <= 10
  • 1 <= multiplier <= 5

اشاره:

  1. جفت های مرتب شده را حفظ کنید (nums[index], index) در صف اولویت
  2. عملیات را شبیه سازی کنید k بارها

راه حل:

ما باید عملیات را همانطور که در بیانیه مشکل توضیح داده شده است پیاده سازی کنیم. مراحل کلیدی این است که حداقل مقدار را در آرایه پیدا کنید، آن را با مقدار ضرب شده در ضریب داده شده جایگزین کنید و سپس این فرآیند را تکرار کنید. k بارها

با توجه به اینکه باید اولین رخداد حداقل مقدار را انتخاب کنیم و آن را جایگزین کنیم، می‌توانیم با پیگیری شاخص حداقل مقدار در طول هر عملیات به این موضوع نزدیک شویم. پیاده سازی PHP از یک صف اولویت (min-heap) برای بازیابی و به روز رسانی موثر حداقل مقدار در طول هر عملیات استفاده می کند.

بیایید این راه حل را در PHP پیاده سازی کنیم: 3264. حالت آرایه نهایی پس از عملیات ضرب K I


/**
 * @param Integer[] $nums
 * @param Integer $k
 * @param Integer $multiplier
 * @return Integer[]
 */
function finalArrayState($nums, $k, $multiplier) {
    ...
    ...
    ...
    /**
     * go to ./solution.php
     */
}

// Test Case 1
$nums1 = [2, 1, 3, 5, 6];
$k1 = 5;
$multiplier1 = 2;
$result1 = finalArrayState($nums1, $k1, $multiplier1);
echo "Output: [" . implode(", ", $result1) . "]\n";

// Test Case 2
$nums2 = [1, 2];
$k2 = 3;
$multiplier2 = 4;
$result2 = finalArrayState($nums2, $k2, $multiplier2);
echo "Output: [" . implode(", ", $result2) . "]\n";
?>
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

توضیح:

  1. مقدار دهی اولیه: حلقه k از زمانی که نیاز به اجرا دارید k عملیات
  2. حداقل مقدار را پیدا کنید:

    • روی آرایه تکرار کنید nums برای پیدا کردن کوچکترین مقدار و آن شاخص اولین وقوع.
  3. حداقل مقدار را ضرب کنید:

    • مقدار در شاخص شناسایی شده را با حاصلضرب مقدار فعلی جایگزین کنید multiplier.
  4. تکرار کنید:

    • مراحل بالا را برای k تکرارها
  5. آرایه نهایی را برگردانید:

    • آرایه اصلاح شده را پس از تمام عملیات برگردانید.

خروجی تست

برای موارد تست ارائه شده:

مورد آزمایشی 1:

ورودی:

$nums = [2, 1, 3, 5, 6];
$k = 5;
$multiplier = 2;
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

خروجی:

Output: [8, 4, 6, 5, 6]
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

مورد آزمایشی 2:

ورودی:

$nums = [1, 2];
$k = 3;
$multiplier = 4;
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

خروجی:

Output: [16, 8]
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

پیچیدگی

  1. پیچیدگی زمانی:

    • برای هر یک از k عملیات، یافتن حداقل مقدار در آرایه نیاز دارد O(n).
    • مجموع: O(kxn)، کجا n اندازه آرایه است.
  2. پیچیدگی فضا:

    • راه حل استفاده می کند O (1) فضای اضافی

این راه حل به محدودیت ها پایبند است و نتایج مورد انتظار را برای همه موارد آزمایش ارائه می دهد.

لینک های تماس

اگر این مجموعه را مفید یافتید، لطفاً آن را در نظر بگیرید مخزن یک ستاره در GitHub یا اشتراک گذاری پست در شبکه های اجتماعی مورد علاقه خود 😍. حمایت شما برای من اهمیت زیادی دارد!

اگر محتوای مفیدتری مانند این می‌خواهید، در صورت تمایل من را دنبال کنید:

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا