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

轮转数组(Java)

大家好我是苏麟 , 这篇文章是凑数的 ...

轮转数组

描述 : 

给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。

题目 :

牛客 NC110 旋转数组:

 这里牛客给出了数组长度我们直接用就可以了 . 

LeetCode 189.轮转数组 :

189. 轮转数组

分析 :

这个题怎么做呢?你是否想到可以逐次移动来实现? 理论上可以,但是实现的时候会发现要处理的情况非常多,比较难搞。这里介绍一种简单的方法: 两轮翻转

方法如下:
1.首先对整个数组实行翻转,例如[1,2,3,4,5,6,7] 我们先将其整体翻转成[7,6,5,4,3,2,1].

2.从 k 处分隔成左右两个部分,这里就是根据k将其分成两组 [7,6,5] 和[4,3,2,1].

3.最后将两个再次翻转就得到[5,6,7] 和[1,2,3,4],最终结果就是[5,6,7,1,2,3,4].

解析 :

// LeetCode
class Solution {public void rotate(int[] nums, int k) {k %= nums.length;exchange(nums, 0 , nums.length -1);exchange(nums, 0 , k -1 );exchange(nums, k, nums.length -1);}public void exchange(int[] arr , int left , int right){while(left <= right){int temp =arr[left];arr[left] = arr[right];arr[right] = temp;left++;right--;}}
}

这篇文章会合并到算法通关村第三关白银练习里 . 

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

相关文章:

  • Spring体系结构
  • PostgreSQL basebackup备份和恢复
  • XTU-OJ 1248-Alice and Bob
  • 第四章 文件管理 十、文件系统的全局结构
  • 【PythonGIS】基于高德Api实现批量地址查询经纬度
  • vue数组中的变更方法和替换方法
  • Java - 工具类参数初始化
  • 一文搞懂 MineCraft 服务器启动操作和常见问题 2023年10月
  • 第2篇 机器学习基础 —(2)分类和回归
  • Java游戏修炼手册:2023 最新学习线路图
  • 前端访问geoserver服务发生跨域的解决办法,以及利用html2canvas下载绘制的地图
  • Word docx转html和markdown
  • API商品数据接口调用爬虫实战
  • 【Python机器学习】零基础掌握GaussianProcessClassifier高斯过程
  • SQL-正则表达式和约束
  • “人类高质量数据”如何训练计算机视觉模型?
  • ListenableFuture和countdownlatch使用example
  • C- strtok() strtok_r()
  • order by数据过多引起的cpu飙升
  • namespace命名空间
  • golang中如何配置 sql.DB 以获得更好的性能
  • JAVA同城服务智慧养老小程序怎么开发?
  • Linux防火墙:Firewalld 常用命令
  • Java BigInteger比Long更大的整数自增转字符串存储
  • BigDecimal应用——计算费用场景中用到Integer,Double,BigDecimal三种类型出现的意外情况 结合BigDecimal源码分析
  • 数据抓取可以应用到哪些行业
  • 目标检测YOLO实战应用案例100讲-面向小目标检测的多尺度特征融合(续)
  • 如何选择适合的美颜SDK?
  • Spring-底层架构核心概念
  • RabbitMQ初入门