Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 배열 회전


배열 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]