数组的旋转java题目

当时看一个题想做一下,本来看起来是很简单的,觉得一个for就能解决的问题(当然肯定是能做出来的),最后的教训就是这种题下次记得用两个for。

package test;

import java.util.Arrays;

//数组的旋转
public class Rotate {
	
	//将数组前n个数旋转到末尾,主要理解循环的位置和次数,
	//这里使用了两个for,使用一个for需要进行i和n大小的判定,比较繁琐
	public void arrRotate(int n) {
		int [] a = {5,6,7,1,2,3,4};
		int [] b = new int[7];
		int length = a.length;                            
		for (int i = 0; i< length-n; i++) {	             //先把后面的补位到前面
			b[i] = a[i+n];	    
		}	
		for (int i = length-n; i< length; i++) {     //空位从a[0]开始补齐到b[n-1]
			b[i] = a[i-length+n];
		}
		System.out.println(Arrays.toString(b));
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Rotate a1 = new Rotate();
		a1.arrRotate(3);
	}
}


[1, 2, 3, 4, 5, 6, 7]


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值