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)
相关推荐
稚辉君.MCA_P8_Java10 小时前
Gemini永久会员 Go 实现动态规划
数据结构·后端·算法·golang·动态规划
m5655bj10 小时前
使用 Python 高效复制 Excel 行、列、单元格
开发语言·python·excel
快手技术10 小时前
快手 & 南大发布代码智能“指南针”,重新定义 AI 编程能力评估体系
算法
龙言龙论10 小时前
身份证信息批量处理系统:从入门到实战(附exe工具+核心源码)
数据库·python
Murphy_lx10 小时前
C++ std_stringstream
开发语言·c++·算法
m0_6265352010 小时前
代码分析 长音频分割为短音频
javascript·python·音视频
Wpa.wk11 小时前
自动化测试环境配置-java+python
java·开发语言·python·测试工具·自动化
带刺的坐椅11 小时前
AI 应用工作流:LangGraph 和 Solon AI Flow,我该选谁?
java·python·ai·solon·flow·langgraph
CoovallyAIHub11 小时前
超越YOLOv8/v11!自研RKM-YOLO为输电线路巡检精度、速度双提升
深度学习·算法·计算机视觉
哭泣方源炼蛊11 小时前
HAUE 新生周赛(七)题解
数据结构·c++·算法