旋轉數組

題目:算法

  給定一個數組,將數組中的元素向右移動 個位置,其中 是非負數。數組

  示例 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]
  • 要求使用空間複雜度爲 O(1) 的 原地 算法。
 
思路:因題目要求是原地算法
  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); } };
相關文章
相關標籤/搜索