经典三旋转:
旋转数组经典算法就是三旋转先整体旋转之后在局部旋转
需要注意 求余运算,超过数组长度后要取余数后在旋转
如:[1,2,3,4,5,6,7] 3
> [7,6,5,4,3,2,1] 整体旋转
> [5,6,7,4,3,2,1] [..k] 旋转
> [5,6,7,1,2,3,4] [k..] 旋转
let k: usize = k as usize % nums.len(); nums.reverse(); nums[..k].reverse(); nums[k..].reverse();
使用Rust标准库右旋转!!!速度更快!
let len = nums.len(); nums.rotate_right(k as usize % len)
%也可以使用rem_euclid(i32) 这个函数代替。
let i=nums.len() as i32; ums.rotate_right(k.rem_euclid(i) as usize)