leetcode_数组 189. 轮转数组

189. 轮转数组

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

  • 示例 1:

    • 输入: nums = [1,2,3,4,5,6,7], k = 3
    • 输出: [5,6,7,1,2,3,4]
  • 示例 2:

    • 输入:nums = [-1,-100,3,99], k = 2
    • 输出:[3,99,-1,-100]

思路

  1. 首先计算有效轮转次数,轮转 k 次和轮转 k % len(nums) 次效果相同
  2. 向右轮转 k 个位置,相当于将数组的最后 k 个元素移动到前面,即新数组 = nums[-k:] + nums[:-k],注意前后拼接顺序

实现

bash 复制代码
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.
        """

        k = k % len(nums)
        nums[:] = nums[-k:] + nums[:-k]
        
        return nums
  • 时间复杂度: O(n)
  • 空间复杂度: O(1)
相关推荐
谙弆悕博士8 分钟前
Python快速学习——第8章:循环语句
python·学习·servlet
贫民窟的勇敢爷们11 分钟前
Scikit-learn算法:从入门到精通的机器学习工具箱
算法·机器学习·scikit-learn
idingzhi12 分钟前
A股量化策略日报(2026年05月09日)
python
m0_6245785917 分钟前
C#怎么获取U盘的插拔事件_C#如何重写WndProc捕获消息【进阶】
jvm·数据库·python
Liangwei Lin23 分钟前
LeetCode 155. 最小栈
java·javascript·算法
我叫黑大帅26 分钟前
PyScript-GitHubRepo: 构建高性能GitHub仓库批量下载工具的技术实践
后端·python·面试
Tutankaaa33 分钟前
知识竞赛计分如何确保绝对准确?双机热备方案详解与实施要点
笔记·学习·职场和发展
lbb 小魔仙39 分钟前
基于Python构建RAG(检索增强生成)系统:从原理到企业级实战
开发语言·python
~|Bernard|1 小时前
二.go语言中map的底层原理(2026-5-8)
算法·golang·哈希算法
SunnyDays10111 小时前
Python 如何精准统计 Word 文档的页数、字数、行数
python·word文档字数统计