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

leetcode Top100 189.轮转数组

题目链接:189. 轮转数组 - 力扣(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]

解题思路:把数组内的元素向右移动k个单位长度

单看 初始状态 和 最终结果  [1,2,3,4,5,6,7]  [5,6,7,1,2,3,4] 

就位置来看 初始的7 从下标为6 到下标为2 数组长度为7 可得到规律 (6+3)%7 = 9 % 7 = 2

所以 根据这个推导公式 可以得出新数组的每个位置的下标

Java代码:

class Solution3 {public void  rotate(int[] nums, int k){int n = nums.length;//数组长度int[] arr = new int[n];//创建新数组for (int i = 0; i < n; i++) {arr[(i + k) % n] = nums[i];}System.arraycopy(arr, 0, nums, 0, n);//要copy的数组 索引从0开始 长度为nums.length;}
}

http://www.xdnf.cn/news/941959.html

相关文章:

  • global security market 的知识点总结 SMA
  • 给跳绳设计一双卡扣
  • Hilt在android项目中使用的注解说明
  • 设置QDialog的setModal(true)对show()无法阻塞
  • Python 训练营打卡 Day 46
  • 力扣-131.分割回文串
  • 基于fpga的疲劳驾驶检测
  • 【Autosar COM】Marvell 88Q5050 以太网交换机驱动技术解析
  • JavaScript 的意义
  • 山东大学项目实训——基于DeepSeek的智能写作与训练平台(十二)
  • cpp自学 day26(智能指针)
  • 基于算法竞赛的c++编程(23)原码,反码,补码
  • 《双指针》题集
  • [特殊字符]01Linux基础入门教程——从起源到核心概念
  • 高等数学 | 第八章-向量值函数的积分与场论
  • JavaScript 语法结构
  • MySQL 索引失效:六大场景与原理剖析
  • 官网Numpy教程
  • leetcode.多数元素
  • 【PhysUnits】17.1 补充数值后量纲系统实现解析 (dimension.rs)
  • 一键压缩图片工具
  • 2000-2020年各省第三产业增加值占GDP比重数据
  • 网络安全基础
  • Python 调用 C 程序时输出顺序错乱问题分析与解决
  • 0x-2-Oracle Linux 9上安装JDK配置环境变量
  • 第五讲 基础IO
  • Go切片与映射的内存优化技巧:实战经验与最佳实践
  • 【LeetCode】算法详解#6 ---除自身以外数组的乘积
  • JUC并发编程(六)CAS无锁实现/原子整数/原子引用/原子数组/字段更新
  • Python训练营---DAY48