//题目:有 n 个整数,使其前面各数顺序向后移 m 个位置,最后 m 个数变成最前面的 m 个数,比如输入数字
//为 1 2 3 4 5 6 7 8 9 0,m=4,则结果为 7 8 9 0 1 2 3 4 5 6
public class MoveLocation {
static int[] move(int arr[],int m)
{
int temp[]=new int[m];//暂存后m个数
for(int i=0;i<m;i++)//将后m个数存入暂存数组
{
temp[i]=arr[arr.length-m+i];
}
//前面各数顺序后移m个
for(int k=arr.length-m-1;k>=0;k--)
{
arr[k+m]=arr[k];
}
for(int j=0;j<m;j++)
{
arr[j]=temp[j];
}
return arr;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int arr[]= {1,2,3,4,5,6,7,8,9,0};
System.out.print("交换前数组:");
for(int j=0;j<arr.length;j++)
{
System.out.print(arr[j]+" ");
}
System.out.println();
int arrNew[]=move(arr,4);
System.out.print("交换后数组: ");
for(int i=0;i<arr.length;i++)
{
System.out.print(arrNew[i]+" ");
}
}
}
JAVA经典50题(36)
最新推荐文章于 2023-07-23 15:30:34 发布
本文介绍了一种数组旋转算法,通过创建临时数组存储后m个元素,然后将数组剩余部分向前移动m个位置,最后将临时数组的元素放置到数组的前m个位置,实现了数组的旋转。示例代码展示了如何使用该算法处理具体数据。
10万+

被折叠的 条评论
为什么被折叠?



