본문 바로가기

코테

LeetCode Top Interview 150 - 189. Rotate Array

 var rotate = function(nums, k) {
     k = k % nums.length
    
     for(let i=0;i<k;i++){
         nums.unshift(nums.pop())
     }
 };

첫 코드로 testcode는 성공했으나 시간복잡도가 O(n * k) 로 submit이 성공하지 않았다.

 


var rotate = function(nums, k) {
    const len = nums.length
    k = k % len
    const arr = nums.splice(len-k,len)

    nums.unshift(...arr)
};

그래서 일일이 꺼내고 앞으로 넣어주고는 시간복잡도가 구리니 몇번을 해야하는지 위의 코드에서 계산했기때문에 

 

계산한걸 기반으로 한번에 잘라서 앞으로 넣어야겠다고 생각할수 있었다.

 

 

 

https://leetcode.com/problems/rotate-array/description/?envType=study-plan-v2&envId=top-interview-150