題目:算法
給定一個數組,將數組中的元素向右移動 k 個位置,其中 k 是非負數。數組
示例 1:spa
輸入: 和 k = 3 輸出: 解釋: 向右旋轉 1 步: 向右旋轉 2 步: 向右旋轉 3 步: [1,2,3,4,5,6,7][5,6,7,1,2,3,4][7,1,2,3,4,5,6][6,7,1,2,3,4,5] [5,6,7,1,2,3,4]
思路:因題目要求是原地算法
1.循環須要換位的數組個數
2.每次將最後一個賦值給第一個
3.再將最後一個刪除
4.以此類推
/** * @param {number[]} nums * @param {number} k * @return {void} Do not return anything, modify nums in-place instead. */ var rotate = function(nums, k) { for(var i=0;i<k;i++){ nums.unshift(nums[nums.length-1]); nums.splice(nums.length-1,1); } };