题解 | #旋转数组#

旋转数组

https://www.nowcoder.com/practice/e19927a8fd5d477794dac67096862042

class Solution:
    def solve(self , n: int, m: int, a: List[int]) -> List[int]:
        # write code here
        m = m% n

        a.reverse()

        b = a[:m]
        b.reverse()

        c = a[m:]
        c.reverse()

        a[:m] = b
        a[m:] = c

        return a

解题思路

  • 先整体翻转;
  • 再翻转左边的前m个元素;
  • 再翻转右边的n-m哥元素;
  • 最后将这两个子数组拼起来,得到最终的结果。

复杂度

  • 时间复杂度为O(N)
  • 空间复杂度为O(N)。
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务