經典三旋轉:
旋轉數組經典算法就是三旋轉先整體旋轉之后在局部旋轉
需要注意 求余運算,超過數組長度后要取余數后在旋轉
如:[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)