反转数组 Reverse
反转数组, 就是将数组中各元素转换到它相反的位置:
- 第一个位置的元素移到最后一位
- 第二个位置的元素移到倒数第二位
- 依次类推
得到的结果如下图所示:
操作过程
根据反转数组的描述, 使用靠拢型双指针法遍历整个数组, 并交换元素的值.
操作步骤如下图所示:
代码实现
#![allow(unused)] fn main() { pub fn reverse_array(arr: &mut [i32]) { if arr.len() < 2 { return; } let mut start = 0; let mut end = arr.len() - 1; while start < end { let tmp = arr[end]; arr[end] = arr[start]; arr[start] = tmp; start += 1; end -= 1; } } #[cfg(test)] mod tests { use super::reverse_array; #[test] fn test_reverse_array() { let mut arr = [1, 2, 3, 4, 5]; reverse_array(&mut arr); assert_eq!(arr, [5, 4, 3, 2, 1]); } } }