How to rotate vector elements left N times in Rust

1 Answer

0 votes
fn rotate_left(arr: &[i32], positions: usize) -> Vec<i32> {
    let n = arr.len();
    let k = positions % n;
    let mut rotated = Vec::with_capacity(n);
    rotated.extend_from_slice(&arr[k..]);
    rotated.extend_from_slice(&arr[..k]);
    rotated
}

fn main() {
    let arr = vec![1, 2, 3, 4, 5, 6, 7];

    println!("Original array: {:?}", arr);

    let rotated = rotate_left(&arr, 2);

    println!("Rotated array: {:?}", rotated);
}



/*
run:

Original array: [1, 2, 3, 4, 5, 6, 7]
Rotated array: [3, 4, 5, 6, 7, 1, 2]

*/

 



answered Oct 22, 2025 by avibootz
...