数据结构(五十六)
学习数据结构与算法过程中的心得体会以及知识点的整理,方便我自己查找,也希望可以和大家一起交流。
—— 调整数组顺序使奇数位于偶数前面 ——
1.题目描述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后半部分。
示例:
输入:nums = [1,2,3,4]
输出:[1,3,2,4]
注:[3,1,2,4]
也是正确的答案之一。
2.代码
c
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int* exchange(int* nums, int numsSize, int* returnSize){
int fnum = 0,lnum = numsSize -1;
while(fnum < lnum){
if(nums[fnum] % 2 == 0 && nums[lnum] % 2 != 0){
int x = nums[fnum];
nums[fnum] = nums[lnum];
nums[lnum] = x;
fnum++;
lnum--;
}
else if(nums[fnum] % 2 == 0 && nums[lnum] % 2 == 0)
lnum--;
else if(nums[fnum] % 2 != 0 && nums[lnum] % 2 != 0)
fnum++;
else{
fnum++;
lnum--;
}
}
*returnSize = numsSize;
return nums;
}
蛮入门的题目,懒得优化了,有时间可以用一下位运算