Rumah > Artikel > hujung hadapan web > Program JavaScript mencari elemen ke-M selepas tatasusunan berputar ke kanan K kali
Kami sedang menulis atur cara JavaScript untuk mencari elemen mth tatasusunan yang diputar ke kanan k kali. Pertama, kita akan mengambil input tatasusunan m dan k. Kami kemudian akan menggunakan gelung untuk melakukan putaran yang betul. Pada setiap lelaran gelung, kami mengalihkan elemen terakhir tatasusunan ke kedudukan pertama. Kami akan meneruskan gelung ini k kali untuk mendapatkan tatasusunan yang diputar. Akhir sekali, kami akan mengembalikan elemen mth tatasusunan yang diputar sebagai hasilnya.
Kaedah mencari elemen ke-m selepas memutar kanan tatasusunan k kali boleh diuraikan seperti berikut -
Kira kedudukan sebenar unsur m-th selepas k putaran, iaitu, (m-k) % n, dengan n ialah panjang tatasusunan.
Semak sama ada kedudukan yang dikira adalah negatif, dalam kes ini ia boleh ditukar kepada kedudukan positif dengan menambah n.
Mengembalikan elemen pada kedudukan yang dikira dalam tatasusunan.
Untuk mengoptimumkan penyelesaian ini, anda boleh menggunakan operator modulo untuk mengekalkan kedudukan yang dikira dalam julat tatasusunan, jadi anda tidak perlu menyemak nilai negatif.
Kerumitan masa penyelesaian ini ialah O(1) kerana mengira kedudukan akhir dan mendapatkan semula elemen pada kedudukan itu ialah operasi masa yang tetap.
Kerumitan ruang ialah O(1) kerana tiada struktur data tambahan digunakan dalam penyelesaian.
Ini ialah contoh atur cara JavaScript yang mencari elemen mth selepas memutar kanan tatasusunan k kali
function findElement(arr, k, m) { k = k % arr.length; // handling large k values return arr[(arr.length - k + m - 1) % arr.length]; } let arr = [1, 2, 3, 4, 5]; let k = 2; let m = 3; console.log(findElement(arr, k, m));
findElement menerima tatasusunan arr, bilangan putaran k dan elemen ke-0 yang akan ditemui. p>
k = k % arr.length mengira bilangan putaran sebenar yang dilakukan pada tatasusunan selepas memproses nilai k yang besar. Ini dilakukan kerana memutar tatasusunan melebihi panjangnya tidak mengubah kedudukannya, jadi mengambil k modulo panjang tatasusunan memberikan kita bilangan putaran sebenar yang dilakukan.
Garis kembali arr[(arr.panjang - k + m - 1) % arr.panjang];Kira kedudukan unsur ke-m selepas k putaran. Ungkapan arr.length - k memberikan kedudukan permulaan tatasusunan selepas k putaran, kemudian + m - 1 memberikan kedudukan elemen ke-m, dan akhirnya mengambil modulo panjang tatasusunan memastikan kedudukan itu melilit hujung tatasusunan apabila di luar julat.
Akhir sekali, program memanggil fungsi findElement dan merekodkan hasilnya. Dalam contoh ini, output akan menjadi 4.
Atas ialah kandungan terperinci Program JavaScript mencari elemen ke-M selepas tatasusunan berputar ke kanan K kali. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!