题解 | #调整数组顺序使奇数位于偶数前面(一)#
调整数组顺序使奇数位于偶数前面(一)
https://www.nowcoder.com/practice/ef1f53ef31ca408cada5093c8780f44b
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param array int整型一维数组 * @param arrayLen int array数组长度 * @return int整型一维数组 * @return int* returnSize 返回数组行数 */ #include <stdlib.h> int* reOrderArray(int* array, int arrayLen, int* returnSize ) { // write code here int* OddArr = (int*)malloc(sizeof(int)*arrayLen); //装奇数 int* EvenArr = (int*)malloc(sizeof(int)*arrayLen); //装偶数 int OddIndex = -1, EvenIndex = -1; //索引 for(int i=0; i<arrayLen; i++){ //将array的奇数偶数分开装到对应数组中 if(array[i]&0x1){ OddArr[++OddIndex] = array[i]; }else{ EvenArr[++EvenIndex] = array[i]; } } for(int i=0; i<arrayLen; i++){ //按照先奇后偶合并保存到array if(i <= OddIndex) array[i] = OddArr[i]; else array[i] = EvenArr[i-OddIndex-1]; } free(OddArr); free(EvenArr); *returnSize = arrayLen; return array; }