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)
相关推荐
Warson_L4 小时前
Python `Annotated` 与 LangGraph Reducer 学习笔记
python
韩师傅4 小时前
海天线算法的前世今生
python·计算机视觉
韩师傅5 小时前
当你的甲方设备过烂,要如何快速出效果?
python·计算机视觉
Warson_L5 小时前
LangGraph的MessageState and HumanMessage
python
韩师傅5 小时前
当你的甲方吐槽天空不够蓝,你应该如何应对
python·计算机视觉
Warson_L6 小时前
python的类&继承
python
Warson_L6 小时前
类型标注/type annotation
python
ThreeS8 小时前
手搓MiniVLA全实战教程-一步一步用pytorch解释原理与思路
人工智能·python
金銀銅鐵10 小时前
[Python] 模 n 乘法的逆元计算器
python·数学·游戏