Open carloscn opened 1 year ago
必须知道哪些数是奇数哪些数是偶数,区分开之后,再去制作一个ret_array。
pub fn sort_array_by_parity_ii(nums: Vec<i32>) -> Vec<i32>
{
let mut ret_vec:Vec<i32> = vec![];
let odd_vec:Vec<i32> = nums.iter()
.filter(|x| *x & 1 == 1)
.map(|x| *x)
.collect();
let even_vec:Vec<i32> = nums.iter()
.filter(|x| *x & 1 == 0)
.map(|x| *x)
.collect();
if odd_vec.len() != even_vec.len() {
return ret_vec;
}
for i in 0..odd_vec.len() {
ret_vec.push(odd_vec[i]);
ret_vec.push(even_vec[i]);
}
return ret_vec;
}
问题描述
给定一个非负整数数组 nums, nums 中一半整数是 奇数 ,一半整数是 偶数 。
对数组进行排序,以便当 nums[i] 为奇数时,i 也是 奇数 ;当 nums[i] 为偶数时, i 也是 偶数 。
你可以返回 任何满足上述条件的数组作为答案 。
示例 1:
输入:nums = [4,2,5,7] 输出:[4,5,2,7] 解释:[4,7,2,5],[2,5,4,7],[2,7,4,5] 也会被接受。
示例 2:
输入:nums = [2,3] 输出:[2,3]
提示:
2 <= nums.length <= 2 * 104 nums.length 是偶数 nums 中一半是偶数 0 <= nums[i] <= 1000
来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/sort-array-by-parity-ii