【Leetcode】轮转数组
2026/7/6 4:10:09 网站建设 项目流程

1 题目

给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。

示例 1:

输入: nums = [1,2,3,4,5,6,7], k = 3
输出: [5,6,7,1,2,3,4]
解释:
向右轮转 1 步: [7,1,2,3,4,5,6]
向右轮转 2 步: [6,7,1,2,3,4,5]
向右轮转 3 步: [5,6,7,1,2,3,4]
示例 2:

输入:nums = [-1,-100,3,99], k = 2
输出:[3,99,-1,-100]
解释:
向右轮转 1 步: [99,-1,-100,3]
向右轮转 2 步: [3,99,-1,-100]

2 分析

观察原始数组nums,和将元素向左轮转k个位置之后的数组,可以发现通过以下三步可以实现:

  • 首先反转整个数组;
  • 然后反转前k个元素
  • 最后反转剩下的部分

但是同时需要关注k>n的情况,可以通过k=k%n来解决。

因此,问题就变为了如何快速、原地翻转数组。

首先,python有自带的reversed函数,写起来会非常简单。

defrotate(self,nums,k):n=len(nums)ifk>n:k=k%n nums.reverse()nums[

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询