29 lines
689 B
Rust
29 lines
689 B
Rust
struct Solution;
|
|
|
|
impl Solution {
|
|
pub fn pancake_sort(arr: Vec<i32>) -> Vec<i32> {
|
|
let mut arr = arr;
|
|
let mut ans = vec![];
|
|
for i in (1..arr.len()+1).rev() {
|
|
if arr[i-1] == i as i32 {
|
|
continue;
|
|
}
|
|
let mut index = 0;
|
|
while arr[index] != i as i32 {
|
|
index += 1;
|
|
}
|
|
ans.push((index + 1) as i32);
|
|
arr[0..index + 1].reverse();
|
|
ans.push(i as i32);
|
|
arr[0..i].reverse();
|
|
println!("{:?}", arr);
|
|
}
|
|
ans
|
|
}
|
|
}
|
|
|
|
fn main() {
|
|
let sl = Solution::pancake_sort(vec![3, 2, 4, 1]);
|
|
println!("{:?}", sl);
|
|
}
|