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)
相关推荐
通信小呆呆12 分钟前
Vandermonde结构及其快速算法详解
线性代数·算法
小江的记录本25 分钟前
【JVM虚拟机】JVM调优:常用JVM参数、调优核心指标、OOM排查、GC日志分析、Arthas工具使用(附《思维导图》+《面试高频考点清单》)
java·jvm·spring boot·后端·python·spring·面试
大数据魔法师27 分钟前
Streamlit(十三)- API 参考文档(六)- 媒体展示组件
python·web
爱写代码的倒霉蛋33 分钟前
Hello-Agents的第一个练习-5分钟实现一个智能体(实现详解)
python
金銀銅鐵38 分钟前
[Java] 用图形化界面演示 iadd, isub, iconst_<i> 指令的效果
java·后端·python
云泽8081 小时前
笔试算法 - 链表篇(一):移除、反转、合并、回文判断全解析
数据结构·c++·算法·链表
菜菜的顾清寒1 小时前
HOT力扣100(43)二叉树-翻转二叉树
数据结构·算法·leetcode
通信小呆呆1 小时前
Toeplitz结构及其快速算法详解
算法
YikNjy1 小时前
break和continue
java·开发语言·算法