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中获取对象信息的方法
Apr 27 Python
python根据京东商品url获取产品价格
Aug 09 Python
python中的随机函数random的用法示例
Jan 27 Python
Python安装图文教程 Pycharm安装教程
Mar 27 Python
对python中的for循环和range内置函数详解
Apr 17 Python
Python3编码问题 Unicode utf-8 bytes互转方法
Oct 26 Python
python 读取Linux服务器上的文件方法
Dec 27 Python
python判断一个对象是否可迭代的例子
Jul 22 Python
Django单元测试工具test client使用详解
Aug 02 Python
浅谈Python3实现两个矩形的交并比(IoU)
Jan 18 Python
python使用ctypes调用扩展模块的实例方法
Jan 28 Python
python实现语音常用度量方法的代码详解
May 25 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
PHP autoload与spl_autoload自动加载机制的深入理解
2013/06/05 PHP
PHP 伪静态技术原理以及突破原理实现介绍
2013/07/12 PHP
php实例分享之html转为rtf格式
2014/06/02 PHP
PHP 芝麻信用接入的注意事项
2016/12/01 PHP
动态的改变IFrame的高度实现IFrame自动伸展适应高度
2012/12/28 Javascript
JS中如何设置readOnly的值
2013/12/25 Javascript
通过复制Table生成word和excel的javascript代码
2014/01/20 Javascript
jquery复选框多选赋值给文本框的方法
2015/01/27 Javascript
Jquery实现简单的轮播效果(代码管用)
2016/03/14 Javascript
前端程序员必须知道的高性能Javascript知识
2016/08/24 Javascript
jQuery实现简易的输入框字数计数功能示例
2017/01/16 Javascript
jQuery阻止移动端遮罩层后页面滚动
2017/03/15 Javascript
JavaScript中防止微信浏览器被整体拖动的方法
2017/08/25 Javascript
对Angular中单向数据流的深入理解
2018/03/31 Javascript
js 数组详细操作方法及解析合集
2018/06/01 Javascript
js+SVG实现动态时钟效果
2018/07/14 Javascript
angularjs手动识别字符串中的换行符方法
2018/10/02 Javascript
详解vue几种主动刷新的方法总结
2019/02/19 Javascript
微信小程序后端实现授权登录
2020/02/24 Javascript
实例Python处理XML文件的方法
2015/08/31 Python
使用python绘制常用的图表
2016/08/27 Python
简单谈谈Python中函数的可变参数
2016/09/02 Python
python实现随机森林random forest的原理及方法
2017/12/21 Python
Python用imghdr模块识别图片格式实例解析
2018/01/11 Python
python 反向输出字符串的方法
2018/07/16 Python
Python 20行简单实现有道在线翻译的详解
2019/05/15 Python
Python中的类与类型示例详解
2019/07/10 Python
Selenium alert 弹窗处理的示例代码
2020/08/06 Python
Vichy薇姿加拿大官网:法国药妆,全球专业敏感肌护肤领先品牌
2018/07/11 全球购物
英国的领先快速时尚零售商:In The Style
2019/03/25 全球购物
Java面试题汇总
2015/12/06 面试题
小学语文国培感言
2014/03/04 职场文书
股东合作协议书范本
2014/04/14 职场文书
2015毕业生简历自我评价
2015/03/02 职场文书
pycharm代码删除恢复的方法
2021/06/26 Python
gateway与spring-boot-starter-web冲突问题的解决
2021/07/16 Java/Android