LeetCode - 189. Rotate Array
来源:互联网 发布:ubuntu 打开端口 编辑:程序博客网 时间:2024/05/18 01:43
题目中要求翻转一个数组,注意题目给出的k可能大于数组的长度,所以首先要进行一个预处理,就是k = k % nums.length。解决了这个问题之后,我们可以来考虑翻转的问题,仔细观察后发现,可以用三次翻转数组来解决问题:首先将整个数组反转,接着翻转前k个元素,最后翻转k到第nums.length个元素,这样就可以实现题目中要求的翻转。
注意这种方法不仅仅适用于数组,还可以用同样的思路翻转链表,但是reverse函数要重新写,整个代码如下:
public class Solution { public void rotate(int[] nums, int k) { if(nums == null || nums.length == 0) return; k %= nums.length; reverse(nums, 0, nums.length - 1); reverse(nums, 0, k - 1); reverse(nums, k, nums.length - 1); } private void reverse(int[] nums, int start, int end){ while(start < end){ int temp = nums[start]; nums[start] = nums[end]; nums[end] = temp; start++; end--; } }}
知识点:
1. 当题目中要求移动/翻转数组/链表k个位置的时候,要多多考虑k大于数组/链表长度的情况,这时候使用k % length即可
0 0
- [LeetCode]189.Rotate Array
- [Leetcode] 189.Rotate Array
- LeetCode 189. Rotate Array
- 【LeetCode】189.Rotate Array
- [leetcode] 189.Rotate Array
- 【leetcode】189. Rotate Array
- Leetcode 189. Rotate Array
- 189. Rotate Array LeetCode
- [LeetCode]189. Rotate Array
- leetcode-189.-Rotate Array
- LeetCode 189. Rotate Array
- leetcode 189. Rotate Array
- LeetCode *** 189. Rotate Array
- [LeetCode]189. Rotate Array
- LeetCode 189. Rotate Array
- leetcode-189. Rotate Array
- Leetcode 189. Rotate Array
- leetcode 189. Rotate Array
- php 文件上传
- C# iOS Xamarin tableview 复用的使用
- 从底层谈WebGIS 原理设计与实现(九):WebGIS中的矢量查询(针对AGS和GeoServer)
- IOS 学习笔记
- Eclipse怎样导入格式化模板
- LeetCode - 189. Rotate Array
- JQueryiframe页面操作父页面中的元素与方法(实例讲解)
- Facebook的人工智能要靠这个人:Yann LeCun
- map bean转换 反射 泛型
- iOS 亮度传感器 获取屏幕亮度值
- 建站css-tip
- eclipse搭建Android运行模拟器
- UNIX网络编程笔记(9)—守护进程和inetd超级服务器
- Integer的自动装箱与拆箱