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

【Leetcode-189.轮转数组】

题目:

给定一个整数数组 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]
详细讲解:

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

代码实现:
class Solution {
    public void rotate(int[] nums, int k) {
        int len = nums.length;
        int [] newNums = new int[len];
        for(int i = 0; i < len; i++){
            newNums[(i+k) % len] = nums[i];
        }
        System.arraycopy(newNums,0,nums,0,len);
    }
}


http://www.kler.cn/a/274471.html

相关文章:

  • 202412月最新植物大战僵尸杂交版【V3.0.1】更新内容与下载
  • 纯前端实现更新检测
  • 基底展开(Expansion in a Basis):概念、推导与应用 (中英双语)
  • ElasticSearch 数据聚合与运算
  • 在 Solana 上实现 SOL 转账及构建支付分配器
  • 【一文了解】C#重点-委托1
  • spring suite搭建springboot操作
  • [Java、Android面试]_08_强软弱虚四种引用及应用场景
  • 【Week Y2】使用自己的数据集训练YOLO-v5s
  • docker入门(一)—— docker概述
  • Hive借助java反射解决User-agent编码乱码问题
  • 学生课程数据库综合操作(SQL)
  • android 怎么自定义view
  • 【博士每天一篇文献-综述】Brain network communication_ concepts, models and applications
  • vue3实现输入框短信验证码功能---全网始祖
  • 【华为OD机试】绘图机器【C卷|100分】
  • 虚拟游戏理财 - 华为OD统一考试(C卷)
  • CVE-2019-5782:kArgumentsLengthType 设置偏小导致优化阶段可以错误的去除 CheckBound 节点
  • 【ESP32 IDF】ESPTIMER定时器
  • Java八股文(RabbitMQ)
  • mysql事务和行锁
  • 串口123
  • 《算法王晓东》最小重量机器设计问题
  • JavaSE(上)-Day6
  • 基于openresty构建运维工具链实践
  • Elasticsearch常用语句