在 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 = 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]

更新日期:2020 年 4 月 28 日

618 次瀏覽

開啟你的 職業生涯

完成課程認證

開始
廣告
© . All rights reserved.