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 mod n
  • A =อาร์เรย์ย่อยของ A จาก n – k ถึงปลาย + อาร์เรย์ย่อยของ A ตั้งแต่ 0 ถึง n – k – 1

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

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]