Rust 旋轉數組


經典三旋轉:

旋轉數組經典算法就是三旋轉先整體旋轉之后在局部旋轉

需要注意 求余運算,超過數組長度后要取余數后在旋轉

如:[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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM