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

『力扣刷题本』:轮转数组

一、题目

给定一个整数数组 nums,将数组中的元素向右轮转 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]

二、思路解析

这道题我又是没做出来啦,不过我学到了一个新的解题方法--双数组!

顾名思义,就是利用一个新数组来解题。

这道题里面,我们其实只要想明白一步即可,就是怎么把因为轮转而存不下的元素先给存下来,就行啦。

那么,我们可以用这一步来解决:

newArr[(i + k) % n] = nums[i];

把这些元素放好之后,我们在对数组进行一个拷贝即可。这个拷贝的方法,也是我不太熟悉的,嗯,直到自己哪里薄弱,是件好事,以后广而避之就行。

三、完整代码

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

以上就是本篇博客的全部内容啦,如有不足之处,还请各位指出,期待能和各位一起进步!

http://www.lryc.cn/news/208842.html

相关文章:

  • Java关于实例对象调用静态变量和静态方法问题
  • 【开源】基于SpringBoot的海南旅游景点推荐系统的设计和实现
  • 字符串中的assert和strcat
  • 方舟生存进化ARK个人服务器搭建教程保姆级
  • SpringBoot可以连接RabbitMQ集群吗 ?
  • 【机器学习】KNN算法-模型选择与调优
  • NPM【问题 01】npm i node-sass@4.14.1报错not found: python2及Cannot download问题处理
  • redis集群中节点fail,noaddr
  • Fourier分析导论——第1章——Fourier分析的起源(E.M. Stein R. Shakarchi)
  • 使用Node.js软件包管理器(npm)安装TypeScript
  • 鸿蒙ArkUI-X跨端应用开发,一套代码构建多平台应用
  • 【鸿蒙软件开发】ArkTS基础组件之Gauge(环形图表)、LoadingProgress(动态加载)
  • C++模板类用作参数传递
  • SQL server 代理服务启动和查看
  • 单例模式详解【2023年最新】
  • 读高性能MySQL(第4版)笔记21_读后总结与感想兼导读
  • 放学辣[简单版]
  • 面向对象设计——原型模式
  • SpringAOP源码解析之advice执行顺序(三)
  • CentOS 安装 tomcat 并设置 开机自启动
  • 论文阅读——ELECTRA
  • Android开发知识学习——HTTP基础
  • 51单片机的hello world之点灯
  • Django 实战开发(一)项目搭建
  • Unity把余弦值转成弧度和角度
  • debian、ubuntu打包deb包工具,图形界面deb打包工具mkdeb
  • 微信小程序如何使用地球半径计算两组经纬度点之间的距离(自身位置与接口返回位置)【上】
  • postgis ST_ClipByBox2D用法
  • 【MyBatis Plus】深入探索 MyBatis Plus 的条件构造器,自定义 SQL语句,Service 接口的实现
  • 基于AI与物联网技术的智能视频监控系统架构剖析