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]
*/