我們將實作一個 JavaScript 程序,以在多次旋轉後尋找給定索引處的元素。程式將要求我們對陣列執行旋轉,然後傳回指定索引處存在的元素。為了完成此任務,我們將使用模運算子來計算每次旋轉後的新索引。整個解釋過程中將使用將來進行式。
在程式中,我們將取得陣列的輸入、旋轉次數和索引。然後,我們將使用模運算子來執行旋轉,以在每次旋轉後找到新的索引。透過將旋轉次數新增至原始索引,然後對總和與陣列長度取模來找到新索引。最終索引處的元素將作為程式的結果傳回。
總之,我們將開發一個簡單而有效率的程序,在多次旋轉後尋找給定索引處的元素。該程式將演示模運算子的使用,對於任何希望在 JavaScript 中執行陣列旋轉的人來說都是一個有價值的工具。
給定一個元素數組和多次旋轉k,任務是在旋轉後找到給定索引n處的元素。
首先,確定元素在 k 次旋轉後的實際位置。實際位置可以透過對n和k取模來找到。
#透過將元素向右移動 k 次來對陣列執行旋轉。
為了實現輪換,我們可以使用以下方法 -
#將最後一個元素儲存在暫存變數中。
所有元素向右移動一步。
用暫存變數取代第一個元素。
重複步驟 3 k 次以完成所有旋轉。
完成所有旋轉後,回到第 n 個索引處的元素,這就是現在的實際位置。
此方法的時間複雜度為 O(n * k),,其中 n 是數組中元素的數量。但是,可以透過使用循環旋轉的概念將其最佳化為 O(n)。
這是一個 JavaScript 程序,它在多次旋轉後找到給定索引處的元素 -
function findElement(arr, rotations, index) { // Number of rotations modulo length of the array rotations = rotations % arr.length; // New index after rotations let newIndex = (arr.length + index - rotations) % arr.length; // Return element at new index return arr[newIndex]; } let arr = [1, 2, 3, 4, 5]; let rotations = 2; let index = 4; console.log(findElement(arr, rotations, index)); // Output: 3
函數 findElement 採用三個參數:arr、旋轉和索引。 arr 是一個元素數組,rotations 是要對數組執行旋轉的次數,index 是旋轉後要找到的元素的索引。
函數的第一行計算以陣列長度為模的旋轉次數。這樣做是因為如果旋轉次數大於數組的長度,那麼經過一些旋轉後,數組就會回到原來的狀態。因此,我們只需要執行相當於數組長度的旋轉即可。
下一行計算執行旋轉後元素的新索引。它透過從給定索引中減去旋轉次數並將數組的長度加到結果中來實現此目的。最後一步是將結果與陣列長度取模。
最後,函數傳回新索引處的元素。
在下面的程式碼中,我們初始化陣列 arr、 旋轉次數和索引 index
#程式碼的最後一行呼叫 findElement 函數並將結果列印到控制台。
以上是JavaScript 程式在多次旋轉後會尋找給定索引處的元素的詳細內容。更多資訊請關注PHP中文網其他相關文章!