数组的旋转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]


猜你喜欢

转载自blog.csdn.net/m15682532244/article/details/78359904