前端練習51 旋轉陣列

2021-09-10 07:32:34 字數 1271 閱讀 8594

題目來自leetcode

給定乙個陣列,將陣列中的元素向右移動k個位置,其中k是非負數。

示例 1:

輸入: [1,2,3,4,5,6,7] 和 k = 3

輸出: [5,6,7,1,2,3,4]

解釋:向右旋轉 1 步: [7,1,2,3,4,5,6]

向右旋轉 2 步: [6,7,1,2,3,4,5]

向右旋轉 3 步: [5,6,7,1,2,3,4]

示例 2:

輸入: [-1,-100,3,99] 和 k = 2

輸出: [3,99,-1,-100]

解釋:

向右旋轉 1 步: [99,-1,-100,3]

向右旋轉 2 步: [3,99,-1,-100]

說明:

乙個比較典型的旋轉問題

1234567k=3舉例:

先全部旋轉reverse(0, length-1),結果:

7654321
然後旋轉前k個數字,reverse(0, k-1),結果:

567  4321
最後旋轉剩餘數字:,reverse(k, length-1),結果:

567  1234
用**實現:

var rotate = function (nums, k) 

return nums

};

又想了乙個特笨的方法

還是以1234567k=3舉例

先從後向前進行第一輪移動,每相鄰兩項進行換位,結果是:

7123456
然後再進行第二輪移動,類似的,結果是:

6712345
k決定了移動的次數:

var rotate = function (nums, k) 

k--;

} return nums

};

應該還有其他的方法,比如通過遞迴實現,回頭重新的時候再想吧。

LC練習 旋轉陣列

每次旋轉一步,重複k次。可行,但是速度太慢了。class solution def rotate self,nums list int k int none do not return anything,modify nums in place instead.length len nums for...

練習題30 旋轉陣列

原題目 給定乙個陣列,將陣列中的元素向右移動 k 個位置,其中 k 是非負數。示例 1 輸入 1,2,3,4,5,6,7 和 k 3 輸出 5,6,7,1,2,3,4 解釋 向右旋轉 1 步 7,1,2,3,4,5,6 向右旋轉 2 步 6,7,1,2,3,4,5 向右旋轉 3 步 5,6,7,1,...

LeetCode 陣列 旋轉陣列

給定乙個陣列,將陣列中的元素向右移動 k 個位置,其中 k 是非負數。示例 輸入 1,2,3,4,5,6,7 和 k 3 輸出 5,6,7,1,2,3,4 解釋 向右旋轉 1 步 7,1,2,3,4,5,6 向右旋轉 2 步 6,7,1,2,3,4,5 向右旋轉 3 步 5,6,7,1,2,3,4 ...