Computer >> Máy Tính >  >> Lập trình >> Python

Xoay mảng trong Python


Giả sử chúng ta có một mảng A. Chúng ta phải xoay nó k bước. Vì vậy, nếu mảng là A =[5, 7, 3, 6, 8, 1, 5, 4] và k =3, thì đầu ra sẽ là [1,5,4,5,7,3,6, số 8]. Các bước giống như

  • [4,5,7,3,6,8,1,5]
  • [5,4,5,7,3,6,8,1]
  • [1,5,4,5,7,3,6,8]

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau.

  • đặt n là kích thước của mảng
  • k =k mod n
  • A =mảng con của A từ n - k đến cuối + mảng con của A từ 0 đến n - k - 1

Hãy cùng chúng tôi xem cách triển khai sau đây để hiểu rõ hơn -

Ví dụ

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)

Đầu vào

nums = [5,7,3,6,8,1,5,4]
k = 3

Đầu ra

[1,5,4,5,7,3,6,8]