3264. Keadaan Tatasusunan Akhir Selepas Operasi Darab K I
Kesukaran: Mudah
Topik: Tatasusunan, Matematik, Timbunan (Baris Gilir Keutamaan), Simulasi
Anda diberi nombor tatasusunan integer, integer k dan pengganda integer.
Anda perlu melakukan operasi k pada nombor. Dalam setiap operasi:
Kembalikan susunan integer yang menandakan keadaan akhir nombor selepas melakukan semua operasi k.
Contoh 1:
| Operasi | Keputusan |
|-------------------|-----------------|
| Selepas operasi 1 | [2, 2, 3, 5, 6] |
| Selepas operasi 2 | [4, 2, 3, 5, 6] |
| Selepas operasi 3 | [4, 4, 3, 5, 6] |
| Selepas operasi 4 | [4, 4, 6, 5, 6] |
| Selepas operasi 5 | [8, 4, 6, 5, 6] |
Contoh 2:
| Operasi | Keputusan |
|-------------------|-----------------|
| Selepas operasi 1 | [2, 2, 3, 5, 6] |
| Selepas operasi 2 | [4, 2, 3, 5, 6] |
| Selepas operasi 3 | [4, 4, 3, 5, 6] |
| Selepas operasi 4 | [4, 4, 6, 5, 6] |
| Selepas operasi 5 | [8, 4, 6, 5, 6] |
Kekangan:
Petunjuk:
Penyelesaian:
Kita perlu melaksanakan operasi seperti yang diterangkan dalam pernyataan masalah. Langkah utama ialah mencari nilai minimum dalam tatasusunan, menggantikannya dengan nilai yang didarab dengan pengganda yang diberikan, dan kemudian ulangi proses ini sebanyak k kali.
Memandangkan kita perlu memilih kejadian pertama nilai minimum dan menggantikannya, kita boleh mendekati ini dengan menjejaki indeks nilai minimum semasa setiap operasi. Pelaksanaan PHP akan menggunakan baris gilir keutamaan (min-timbunan) untuk mendapatkan semula dan mengemas kini nilai minimum dengan cekap semasa setiap operasi.
Mari laksanakan penyelesaian ini dalam PHP: 3264. Keadaan Tatasusunan Akhir Selepas Operasi Darab K I
<?php /** * @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"; ?> <h3> Penjelasan: </h3> <ol> <li> <strong>Permulaan</strong>: Gelung k kali kerana anda perlu melakukan operasi k.</li> <li> <strong>Cari Nilai Minimum</strong>: <ul> <li>Lelaran ke atas nombor tatasusunan untuk mencari nilai terkecil dan <strong>indeks kejadian pertama</strong>nya.</li> </ul> </li> <li> <strong>Darab Nilai Minimum</strong>: <ul> <li>Gantikan nilai pada indeks yang dikenal pasti dengan hasil darab nilai semasa dan pengganda.</li> </ul> </li> <li> <strong>Ulang</strong>: <ul> <li>Ulang langkah di atas untuk k lelaran.</li> </ul> </li> <li> <strong>Kembalikan Tatasusunan Akhir</strong>: <ul> <li>Kembalikan tatasusunan yang diubah suai selepas semua operasi.</li> </ul> </li> </ol> <h3> Keluaran Ujian </h3> <p>Untuk kes ujian yang disediakan:</p> <h4> Kes Ujian 1: </h4> <p>Input:<br> </p> <pre class="brush:php;toolbar:false">$nums = [2, 1, 3, 5, 6]; $k = 5; $multiplier = 2;
Output:
Output: [8, 4, 6, 5, 6]
Input:
$nums = [1, 2]; $k = 3; $multiplier = 4;
Output:
Output: [16, 8]
Kerumitan Masa:
Kerumitan Angkasa:
Penyelesaian ini mematuhi kekangan dan memberikan hasil yang diharapkan untuk semua kes ujian.
Pautan Kenalan
Jika anda mendapati siri ini membantu, sila pertimbangkan untuk memberi repositori bintang di GitHub atau berkongsi siaran pada rangkaian sosial kegemaran anda ?. Sokongan anda amat bermakna bagi saya!
Jika anda mahukan kandungan yang lebih berguna seperti ini, sila ikuti saya:
Atas ialah kandungan terperinci Keadaan Tatasusunan Akhir Selepas Operasi Darab K I. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!