前端與算法 leetcode 189. 旋轉數組

[TOC]javascript

前端與算法 leetcode 189. 旋轉數組


題目描述

189. 旋轉數組前端

概要

把他當作一到簡單的題來作,不要想太多了就好也能夠不整那些花裏胡哨的,直接旋轉數組n次,我一開始也想到了這個辦法,可是以爲太簡單並且效率低下,想了好久也沒想到合適的辦法java

提示

使用額外的數組算法

解析

用一個額外的數組將每一個元素放到對應的位置就好 下標爲i的位置對應(i+k)%數組長度 ,而後把新的數組拷貝(深拷貝)到原數組便可數組

算法

/**  * @param {number[]} nums  * @param {number} k  * @return {void} Do not return anything, modify nums in-place instead.  */
var rotate = function (nums, k{
  const re = []
  for (let i = 0; i < nums.length; i++) {
    re[(i + k) % nums.length] = nums[i]
  }
  for (let j = 0; j < nums.length; j++) {
    nums[j] = re[j]
  }
}
複製代碼

傳入[1,2,3,4,5,6,7] 3的運行結果spa

[5,6,7,1,2,3,4]
複製代碼

執行結果code

執行用時 :68 ms, 在全部 javascript 提交中擊敗了97.94% 的用戶
內存消耗 :36.1 MB, 在全部 javascript 提交中擊敗了9.91%的用戶
複製代碼
相關文章
相關標籤/搜索