LeetCode189轮转数组python示例


Posted in Python onAugust 05, 2022

1.题目

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

示例 1:
输入: nums = [1,2,3,4,5,6,7], k = 3
输出: [5,6,7,1,2,3,4]
解释:
向右轮转 1 步: [7,1,2,3,4,5,6]
向右轮转 2 步: [6,7,1,2,3,4,5]
向右轮转 3 步: [5,6,7,1,2,3,4]

示例 2:
输入:nums = [-1,-100,3,99], k = 2
输出:[3,99,-1,-100]
解释:
向右轮转 1 步: [99,-1,-100,3]
向右轮转 2 步: [3,99,-1,-100]

提示:
1 <= nums.length <= 105
-231 <= nums[i] <= 231 - 1
0 <= k <= 105

2.知识点

  • 使用额外的数组
  • 我们可以使用额外的数组来将每个元素放至正确的位置。用 n表示数组的长度,我们遍历原数组,将原数组下标为 i的元素放至新数组下标为 (i+k) mod n 的位置,最后将新数组拷贝至原数组即可。

3.代码

3.1 arraycopy方法解析

@param src源数组。
 @param srcPos在源数组中的起始位置。
 @param dest目标数组。
 @param destPos在目标数据中的起始位置。
 @param length要复制的数组元素的数量。
 
arraycopy(Object src,  int  srcPos, Object dest, int destPos, int length);

3.2 scala代码

def rotate4(nums:Array[Int],k:Int):Unit = {
    val n: Int = nums.length
    val newArr = new Array[Int](n)
    for(i<-0 to n-1){
      newArr((i+k)%n) = nums(i)
    }
    System.arraycopy(newArr,0,nums,0,n)
    import java.util.Arrays
    println(Arrays.toString(nums))
  }

3.3.java代码

class Solution {
    public void rotate(int[] nums, int k) {
        int n = nums.length;
        int[] newArr = new int[n];
        for (int i = 0; i < n; ++i) {
            newArr[(i + k) % n] = nums[i];
        }
        System.arraycopy(newArr, 0, nums, 0, n);
    }
}

3.4 复杂度分析

  • 时间复杂度: O(n),其中 n 为数组的长度。
  • 空间复杂度: O(n)。

以上就是LeetCode189轮转数组python示例的详细内容,更多关于轮转数组python示例的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
在Python中使用zlib模块进行数据压缩的教程
Jun 26 Python
python 实时遍历日志文件
Apr 12 Python
Python开发微信公众平台的方法详解【基于weixin-knife】
Jul 08 Python
python3 requests中使用ip代理池随机生成ip的实例
May 07 Python
python之消除前缀重命名的方法
Oct 21 Python
python三大神器之fabric使用教程
Jun 10 Python
Python3实现二叉树的最大深度
Sep 30 Python
python机器学习实现决策树
Nov 11 Python
Python print不能立即打印的解决方式
Feb 19 Python
Python词云的正确实现方法实例
May 08 Python
pytorch 实现多个Dataloader同时训练
May 29 Python
python中pd.cut()与pd.qcut()的对比及示例
Jun 16 Python
python语言中pandas字符串分割str.split()函数
Aug 05 #Python
python绘制云雨图raincloud plot
Aug 05 #Python
python计算列表元素与乘积详情
Aug 05 #Python
Pygame游戏开发之太空射击实战敌人精灵篇
Aug 05 #Python
python playwrigh框架入门安装使用
Jul 23 #Python
python playwright之元素定位示例详解
Jul 23 #Python
Sentry的安装、配置、使用教程(Sentry日志手机系统)
Jul 23 #Python
You might like
vBulletin Forum 2.3.xx SQL Injection
2006/10/09 PHP
如何在PHP中使用Oracle数据库(2)
2006/10/09 PHP
php实现utf-8和GB2312编码相互转换函数代码
2013/02/07 PHP
php动态变量定义及使用
2015/06/10 PHP
Thinkphp 框架基础之源码获取、环境要求与目录结构分析
2020/04/27 PHP
编写Js代码要注意的几条规则
2010/09/10 Javascript
Iframe自适应高度绝对好使的代码 兼容IE,遨游,火狐
2011/01/27 Javascript
Javascript核心读书有感之表达式和运算符
2015/02/11 Javascript
基于jQuery实现搜索关键字自动匹配功能
2020/03/26 Javascript
Javascript中浏览器窗口的基本操作总结
2016/08/18 Javascript
angular-ngSanitize模块-$sanitize服务详解
2017/06/13 Javascript
jQury Ajax使用Token验证身份实例代码
2017/09/22 Javascript
nodejs发送http请求时遇到404长时间未响应的解决方法
2017/12/10 NodeJs
python3.3使用tkinter开发猜数字游戏示例
2014/03/14 Python
python绘图方法实例入门
2015/05/19 Python
python根据京东商品url获取产品价格
2015/08/09 Python
Python实现线程状态监测简单示例
2018/03/28 Python
python3实现SMTP发送邮件详细教程
2018/06/19 Python
从DataFrame中提取出Series或DataFrame对象的方法
2018/11/10 Python
详解Python3除法之真除法、截断除法和下取整对比
2019/05/23 Python
python tkinter库实现气泡屏保和锁屏
2019/07/29 Python
Python实现决策树并且使用Graphviz可视化的例子
2019/08/09 Python
Python Subprocess模块原理及实例
2019/08/26 Python
Tensorflow的梯度异步更新示例
2020/01/23 Python
python 通过文件夹导入包的操作
2020/06/01 Python
python 读取.nii格式图像实例
2020/07/01 Python
JBL英国官网:JBL UK
2018/07/04 全球购物
英国手机壳购买网站:Case Hut
2019/04/11 全球购物
后勤岗位职责
2013/11/26 职场文书
给校长的一封建议书
2014/03/12 职场文书
研发工程师岗位职责
2014/04/28 职场文书
医生爱岗敬业演讲稿
2014/08/26 职场文书
中学生勤俭节约倡议书
2015/04/29 职场文书
人代会简报
2015/07/21 职场文书
初中班级口号霸气押韵
2015/12/24 职场文书
elementui的el-popover修改样式不生效的解决
2021/06/30 Javascript