Rust 旋轉陣列

2022-03-10 07:47:56 字數 599 閱讀 5002

經典三旋**

旋轉陣列經典演算法就是三旋轉先整體旋轉之後在區域性旋轉

需要注意 求餘運算,超過陣列長度後要取餘數後在旋轉

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

LeetCode 陣列 旋轉陣列

給定乙個陣列,將陣列中的元素向右移動 k 個位置,其中 k 是非負數。示例 輸入 1,2,3,4,5,6,7 和 k 3 輸出 5,6,7,1,2,3,4 解釋 向右旋轉 1 步 7,1,2,3,4,5,6 向右旋轉 2 步 6,7,1,2,3,4,5 向右旋轉 3 步 5,6,7,1,2,3,4 ...

搜尋旋轉陣列

假設有乙個排序的按未知的旋轉軸旋轉的陣列 比如,0 1 2 4 5 6 7 可能成為4 5 6 7 0 1 2 給定乙個目標值進行搜尋,如果在陣列中找到目標值返回陣列中的索引位置,否則返回 1。你可以假設陣列中不存在重複的元素。直接的方法是順序搜尋 更好的方法是二分搜尋 public class s...

LeetCode 旋轉陣列

將包含n 個元素的陣列向右旋轉 k 步。例如,如果 n 7 k 3,給定陣列 1,2,3,4,5,6,7 向右旋轉後的結果為 5,6,7,1,2,3,4 注意 盡可能找到更多的解決方案,這裡最少有三種不同的方法解決這個問題。要求空間複雜度為 o 1 關聯的問題 反轉字串中的單詞 ii public ...