当前位置: 首页 > news >正文

[leetcode刷题]面试经典150题之6轮转数字(简单)

题目 

​​​​​​轮转数组

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

思路

  • 创建辅助数组

    • 你创建了一个长度和 nums 一样的辅助数组 n,用来存储轮转后的结果。
    • n = [0] * len(nums) 初始化一个全为 0 的新数组 n
  • 处理 k

    • 如果 k 大于数组长度 len(nums),你用 k = k % len(n) 来处理,避免轮转次数超出数组长度。这一步是必要的,因为轮转 len(nums) 次后数组会回到原始状态。
  • 将最后 k 个元素放到辅助数组的开头

    • 通过 n[i] = nums[len(nums) - k + i],你把 nums 中从倒数第 k 个开始的元素存放到辅助数组的前 k 个位置。
  • 将剩余的元素移动到辅助数组的后面

    • 接下来,通过 n[i] = nums[i - k],你把数组剩余的元素移动到辅助数组中。
  • 将辅助数组拷贝回原数组

    • 最后,你通过 nums[i] = n[i] 将辅助数组 n 的值拷贝回 nums 中,完成数组的轮转。

代码

class Solution:def rotate(self, nums: List[int], k: int) -> None:n=[0]*len(nums)if k>len(n):k=k%len(n)for i in range(k):n[i]=nums[len(nums)-k+i]for i in range(k,len(nums)):n[i]=nums[i-k]for i in range(len(n)):nums[i]=n[i]

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【C++篇】走进C++标准模板库:STL的奥秘与编程效率提升之道
  • python:编写一个函数查找字符串中的最长公共前缀
  • Python: networkx绘图
  • python基础题练习
  • 【Java 问题】基础——Java 概述
  • 如何删除EXCELL文件中的空行?
  • leaflet加载GeoServer的WMS地图服务.md
  • C++学习笔记(34)
  • [Excel VBA]如何使用VBA按行拆分Excel工作表
  • Qwen 2.5:阿里巴巴集团的新一代大型语言模型
  • 【FFmpeg应用场景概述】
  • ZLMediaKit Windows编译以及使用
  • Java设计模式——工厂模式扩展
  • python CRC16校验
  • DSP学习00-F28379D学习准备(了解一个工程的构成)
  • 深入了解以太坊
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • Android Volley源码解析
  • JavaScript异步流程控制的前世今生
  • jQuery(一)
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • Python十分钟制作属于你自己的个性logo
  • Shell编程
  • swift基础之_对象 实例方法 对象方法。
  • underscore源码剖析之整体架构
  • vue2.0项目引入element-ui
  • XML已死 ?
  • 后端_MYSQL
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 如何在GitHub上创建个人博客
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • # 服务治理中间件详解:Spring Cloud与Dubbo
  • #QT(智能家居界面-界面切换)
  • (1)Android开发优化---------UI优化
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (四)opengl函数加载和错误处理
  • (五)MySQL的备份及恢复
  • (学习总结16)C++模版2
  • (转)c++ std::pair 与 std::make
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .Net MVC4 上传大文件,并保存表单
  • .NET 常见的偏门问题
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .NetCore 如何动态路由
  • .Net程序帮助文档制作
  • /bin/rm: 参数列表过长"的解决办法
  • /ThinkPHP/Library/Think/Storage/Driver/File.class.php  LINE: 48