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

LeetCode热题100--189.轮转数组--中等

1. 题目

给定一个整数数组 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]

2. 题解

class Solution {public void rotate(int[] nums, int k) {k %= nums.length;reverse(nums, 0, nums.length - 1);reverse(nums, 0, k - 1);reverse(nums, k, nums.length - 1);}public void reverse(int[] nums, int start, int end){while(start < end){int temp = nums[start];nums[start] = nums[end];nums[end] = temp;start += 1;end -= 1;}}
}

3. 解析

出自官方题解方法三:旋转数组

  1. class Solution:这是定义一个名为Solution的新类,该类包含两个方法rotate和reverse。
  2. public void rotate(int[] nums, int k):这是声明一个公共方法rotate,参数是一个整数数组nums和一个整数k。这个方法的作用是将数组向右旋转k个位置。
  3. k %= nums.length;:这行代码是为了防止k大于数组的长度。如果k大于等于数组的长度,那么我们只需要移动k%length次就可以到达原始的位置了。
  4. 接下来的三行是对数组进行三个反转操作:
  5. 首先将整个数组反转(reverse(nums, 0, nums.length - 1)😉;
  6. 然后再分别反转前k个元素和剩下的n-k个元素(reverse(nums, 0, k - 1); reverse(nums, k, nums.length - 1)😉。
    这样做的效果是先将整个数组反转,然后再将前半部分和后半部分分别进行反转,就达到了移动k个位置的效果。
  7. public void reverse(int[] nums, int start, int end){…}:这是声明一个公共方法reverse,参数是一个整数数组nums、一个开始索引start和一个结束索引end。这个方法的作用是将数组从开始到结束的部分进行反转。
http://www.xdnf.cn/news/291619.html

相关文章:

  • 人工智能应用:从技术突破到生态重构的演进之路
  • 【datawhaleAI春训营】楼道图像分类
  • 标题:试验台铁地板:革新之路
  • ARM子程序和栈
  • 第18章:赤色世界:文明的分支与新纪元
  • 雷电模拟器-超好用的Windows安卓模拟器
  • 以太网协议(IEEE 802.3)
  • 数据类型:String
  • 低功耗蓝牙BLE的通信可靠性分析
  • 内存碎片深度剖析
  • 多图详解VSCode搭建Python开发环境
  • BC8 十六进制转十进制
  • Vite 的工作流程
  • 大模型推理框架简介
  • 算法每日一题 | 入门-顺序结构-上学迟到
  • Linux 系统的指令详解介绍
  • 数据融合(Data Fusion)的概念与核心思想
  • DeepSeek-Prover-V2,DeepSeek推出的开源数学推理大模型
  • 实验4 mySQL查询和视图
  • MinIO实现https访问
  • Spring中的控制反转和依赖注入(IoC和DI)以及常见面试题
  • QTtricks
  • 怎么看户型好不好?
  • 1. std::result_of是什么?为什么它出现?
  • 【计算机视觉】三维重建:tiny-cuda-nn:高性能神经网络推理与训练的CUDA加速库
  • 2025年中国光电子器件产业链分析
  • Linux系统中的时间同步服务
  • Qt天气预报系统绘制温度曲线
  • 2048游戏(含Python源码)
  • 【计算机视觉】3d人体重建:PIFu/PIFuHD:高精度三维人体数字化技术指南