Given an array A
of non-negative integers, half of the integers in A are odd, and half of the integers are even.
Sort the array so that whenever A[i]
is odd, i
is odd; and whenever A[i]
is even, i
is even.
You may return any answer array that satisfies this condition.
问题描述:将数组中的奇数放到奇数索引,偶数放到偶数索引上。
建立奇数组和偶数组,将原数组中的奇偶元素放入对应数组,在奇偶数组的元素依次放入res数组。
class Solution {
public:
vector<int> sortArrayByParityII(vector<int>& A) {
vector<int>e,o,res; //建立奇数和偶数两个vector
int j = 0,k = 0;
for(int i = 0;i < A.size();i++)
{
if(A[i]%2 == 0)
{
e.push_back(A[i]);
}
else
{
o.push_back(A[i]);
}
}
for(int i = 0;i < A.size();i++) //依次将奇数组和偶数组中的元素放入res数组
{
if(i%2==0)
res.push_back(e[j++]);
else
res.push_back(o[k++]);
}
return res;
}
};