leecode 21调整数组顺序使奇数位于偶数前面
方法1:新建一个数组,通过两次遍历完成,第一次遍历数组将奇数放到新数组中,再次遍历数组,将偶数放到数组中
int* exchange(int* nums, int numsSize, int* returnSize){
int *res = (int *)malloc(sizeof(int) * numsSize);
int index = 0;
for(int i = 0;i<numsSize;i++)
{
if(nums[i]%2 == 1)
{
res[index++] = nums[i];
}
}
for(int i = 0;i<numsSize;i++)
{
if(nums[i]%2 == 0)
{
res[index++] = nums[i];
}
}
*returnSize = numsSize;
return res;
}
方法2:用双指针+一次遍历
int* exchange(int* nums, int numsSize, int* returnSize){
int *res = (int *)malloc(sizeof(int) * numsSize);
int left = 0,right = numsSize -1;
for(int i = 0;i<numsSize;i++)
{
if(nums[i] % 2 == 1)
{
res[left++] = nums[i];
}
else
{
res[right--] = nums[i];
}
}
*returnSize = numsSize;
return res;
}