leetcode:Rotate Array 【Java】
2016-03-07 16:17
537 查看
一、问题描述
Rotate an array of n elements to the right by k steps.
For example, with n = 7 and k = 3, the array
rotated to
Note:
Try to come up as many solutions as you can, there are at least 3 different ways to solve this problem.
二、问题分析
注意循环一圈后回到原出发点的情况,例如,数组长度为6,k=2:0-->2-->4-->0,会造成只有下标为0,2,4,的几个数再不停交换。
三、算法代码
Rotate an array of n elements to the right by k steps.
For example, with n = 7 and k = 3, the array
[1,2,3,4,5,6,7]is
rotated to
[5,6,7,1,2,3,4].
Note:
Try to come up as many solutions as you can, there are at least 3 different ways to solve this problem.
二、问题分析
注意循环一圈后回到原出发点的情况,例如,数组长度为6,k=2:0-->2-->4-->0,会造成只有下标为0,2,4,的几个数再不停交换。
三、算法代码
public class Solution { public void rotate(int[] nums, int k) { int index = 0; int distance = 0; int cur = 0; for (int i = 0; i < nums.length; i++){ int next = (index+k)%nums.length; int temp = nums[next]; nums[next] = nums[cur]; nums[cur] = temp; index = next; distance=(distance+k)%nums.length; if (distance == 0){ index = (index+1)%nums.length; cur = index; } } } }
相关文章推荐
- spring项目中,post请求中文乱码
- Java中抽象类与接口10问10答
- eclipse根据java或class文件生成类图插件
- JavaSE入门学习27:Java常用类之String类(上)
- 如何在ubuntu 12.04安装eclipse
- java设计模式——工厂模式
- MyEclipse如何从svn上下载项目
- [Java] web输入框默认值处理
- Java实现的死锁示例
- Java类与对象的一些想法
- java 重写(Override)与重载(Overload)浅谈
- jdbc中next()的使用
- Java中的ReentrantLock和synchronized两种锁定机制的对比
- leetcode:Minimum Depth of Binary Tree 【Java】
- java基本算法排序
- java字符串加密解密
- java 使用Reader和Writer对文件内容的拷贝
- JAVA_OPTS参数说明与配置
- JAVA字符串类型-String.format()函数用法
- java内存模型