배열 A가 있다고 가정합니다. 오른쪽으로 k 단계 회전해야 합니다. 따라서 배열이 A =[5, 7, 3, 6, 8, 1, 5, 4]이고 k =3이면 출력은 [1,5,4,5,7,3,6, 8]. 단계는 다음과 같습니다.
- [4,5,7,3,6,8,1,5]
- [5,4,5,7,3,6,8,1]
- [1,5,4,5,7,3,6,8]
이 문제를 해결하기 위해 다음 단계를 따릅니다.
- n은 배열의 크기입니다.
- k =k 모드 n
- A =n – k에서 끝까지 A의 부분배열 + 0에서 n – k – 1까지의 A 부분배열
더 나은 이해를 위해 다음 구현을 살펴보겠습니다. −
예시
class Solution(object): def rotate(self, nums, k): """ :type nums: List[int] :type k: int :rtype: None Do not return anything, modify nums in-place instead. """ n = len(nums) k%=n nums[:] = nums[n-k:]+nums[:n-k] nums = [5,7,3,6,8,1,5,4] ob1 = Solution() ob1.rotate(nums, 3) print(nums)
입력
nums = [5,7,3,6,8,1,5,4] k = 3
출력
[1,5,4,5,7,3,6,8]