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实现多线程网页爬虫
Sep 06 Python
python如何实现远程控制电脑(结合微信)
Dec 21 Python
Python单链表简单实现代码
Apr 27 Python
Python探索之实现一个简单的HTTP服务器
Oct 28 Python
用python打印菱形的实操方法和代码
Jun 25 Python
python中selenium操作下拉滚动条的几种方法汇总
Jul 14 Python
下载官网python并安装的步骤详解
Oct 12 Python
Python使用matplotlib绘制Logistic曲线操作示例
Nov 28 Python
如何完美的建立一个python项目
Oct 09 Python
python语言实现贪吃蛇游戏
Nov 13 Python
用python-webdriver实现自动填表的示例代码
Jan 13 Python
详解win10下pytorch-gpu安装以及CUDA详细安装过程
Jan 28 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管理内存函数 memory_get_usage()使用介绍
2012/09/23 PHP
基于PHP遍历数组的方法汇总分析
2013/06/08 PHP
php文件夹与文件目录操作函数介绍
2013/09/09 PHP
推荐几个开源的微信开发项目
2014/12/28 PHP
PHP实现的简单组词算法示例
2018/04/10 PHP
tp5.1 框架路由操作-URL生成实例分析
2020/05/26 PHP
jquery tab插件制作实现代码
2010/06/22 Javascript
javascript 基础篇1 什么是js 建立第一个js程序
2012/03/14 Javascript
基于javascript滚动图片具体实现
2013/11/18 Javascript
利用javascript判断文件是否存在
2013/12/31 Javascript
jquery实现类似EasyUI的页面布局可改变左右的宽度
2020/09/12 Javascript
js检测判断日期大于多少天的方法
2015/05/04 Javascript
详解jQuery Mobile自定义标签
2016/01/06 Javascript
Intellij IDEA搭建vue-cli项目的方法步骤
2018/10/20 Javascript
electron中使用bootstrap的示例代码
2018/11/06 Javascript
详解JavaScript原生封装ajax请求和Jquery中的ajax请求
2019/02/14 jQuery
vue实现前台列表数据过滤搜索、分页效果
2019/05/28 Javascript
使用异步controller与jQuery实现卷帘式分页
2019/06/18 jQuery
深入理解 ES6中的 Reflect用法
2020/07/18 Javascript
[50:21]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/19 DOTA
Python中运行并行任务技巧
2015/02/26 Python
Python访问MongoDB,并且转换成Dataframe的方法
2018/10/15 Python
python或C++读取指定文件夹下的所有图片
2019/08/31 Python
Python基础之函数基本用法与进阶详解
2020/01/02 Python
Python 通过爬虫实现GitHub网页的模拟登录的示例代码
2020/08/17 Python
Python JSON常用编解码方法代码实例
2020/09/05 Python
Django用户认证系统如何实现自定义
2020/11/12 Python
HTML5中使用postMessage实现两个网页间传递数据
2016/06/22 HTML / CSS
澳大利亚最大的在线美发和美容零售商之一:My Hair Care & Beauty
2019/08/24 全球购物
管理站站长岗位职责
2013/11/27 职场文书
食堂员工工作职责
2013/12/18 职场文书
无工作经验者个人求职信范文
2013/12/22 职场文书
结婚典礼证婚词
2014/01/11 职场文书
cf搞笑广告词
2014/03/14 职场文书
基于JavaScript实现年月日三级联动
2021/06/22 Javascript
Python Django / Flask如何使用Elasticsearch
2022/04/19 Python