코딩테스트

[leetcode] 189. Rotate Array

nayoon 2024. 7. 27. 22:16

 

 

문제

 

class Solution {
    public void rotate(int[] nums, int k) {
        int size = nums.length;
        k = k % size;
        
        boolean[] visited = new boolean[size];
        
        for(int i = 0; i < size; i++){
            if (visited[i]) {
                continue;
            }
            int index = (i + k) % size;
            int next = nums[i];
            
            while(!visited[index]) {
                int temp = nums[index];
                nums[index] = next;
                next = temp;

                visited[index] = true;
                index = (index + k) % size;
            }
        }
    }
}