※ 引述《Rushia (みけねこ的鼻屎)》之铭言:
: https://leetcode.com/problems/sort-array-by-parity/description
: 905. Sort Array By Parity
: 给你一个整数阵列 nums,返回排序完的 nums,这个阵列的左边都是偶数右边都是奇数。
: 思路:
: 1.用双指标来处理,如果左边的数字是偶数则左边指标往右,如果右边数字是奇数则右边
: 指标往左,如果左边是奇数右边是偶数则交换两边的数并两边同时缩小。
思路:
1. 同上双指标,不过设定终止条件:
a. 左边的指标是奇数
b. 右边的指标是偶数
a || b 为真 => 交换两者
否则 => 指标继续走
Code:
impl Solution {
pub fn sort_array_by_parity(nums: Vec<i32>) -> Vec<i32> {
let mut result = nums.clone();
let mut left = 0;
let mut right = result.len() - 1;
while left < right {
while (left < right) && (result[left] & 1 == 0) {
left += 1;
}
while (left < right) && (result[right] & 1 == 1) {
right -= 1;
}
if left < right {
result.swap(left, right);
}
}
result
}
}