给定一个旋转排序数组,在原地恢复其排序。
说明
什么是旋转数组?
比如,原始数组为[1,2,3,4], 则其旋转数组可以是[1,2,3,4], [2,3,4,1], [3,4,1,2], [4,1,2,3]
样例
说明
什么是旋转数组?
比如,原始数组为[1,2,3,4], 则其旋转数组可以是[1,2,3,4], [2,3,4,1], [3,4,1,2], [4,1,2,3]
样例
[4, 5, 1, 2, 3] -> [1, 2, 3, 4, 5]
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
/**
* 给定一个旋转排序数组,在原地恢复其排序。
说明
什么是旋转数组?
比如,原始数组为[1,2,3,4], 则其旋转数组可以是[1,2,3,4], [2,3,4,1], [3,4,1,2], [4,1,2,3]
样例
[4, 5, 1, 2, 3] -> [1, 2, 3, 4, 5]
*
* @author Dell
*
*/
public class Test39 {
public static void reverRotatedSortedArray(ArrayList<Integer> nums)
{ if(nums.size()==0)
return;
// Collections.sort(nums);
while(nums.get(1)>=nums.get(0))
{
int temp=nums.remove(0);
nums.add(temp);
}
int temp1=nums.remove(0);
nums.add(temp1);
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
ArrayList<Integer> list=new ArrayList<>();
for(int i=0;i<n;i++)
{
list.add(sc.nextInt());
}
reverRotatedSortedArray(list);
System.out.println(list);
}
}