public List<Integer> pancakeSort(int[] arr) {
List<Integer> list=new ArrayList<>();
//从最后一个开始,在前面寻找相应位置的最大值
for (int k = arr.length; k > 0; k--) {
//在k之前寻找最大值,反转到第一个
for (int i = 1; i < k; i++) {
if(arr[i]>arr[0])
{
list.add(i+1);
for (int j = 0; j <=i/2 ; j++) {
int tmp=arr[j];
arr[j]=arr[i-j];
arr[i-j]=tmp;
}
}
if(i==k-1)//最后在反转一次将最大值给到后面
{
list.add(k);
for (int j = 0; j <=i/2 ; j++) {
int tmp=arr[j];
arr[j]=arr[i-j];
arr[i-j]=tmp;
}
}
}
}
return list;
}
2022.2.19-----leetcode.969
最新推荐文章于 2024-07-26 01:21:03 发布