题解 | #调整数组顺序使奇数位于偶数前面(二)#
调整数组顺序使奇数位于偶数前面(二)
https://www.nowcoder.com/practice/0c1b486d987b4269b398fee374584fc8
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param array int整型一维数组 * @param arrayLen int array数组长度 * @return int整型一维数组 * @return int* returnSize 返回数组行数 */ int* reOrderArrayTwo(int* array, int arrayLen, int* returnSize ) { // write code here int l = 0, r = arrayLen-1; int tmp; *returnSize = arrayLen; if(arrayLen == 1) return array; while(l <= r){ while(array[l]&0x1)l++; //左指针找到不为奇数的位置 while((array[r]&0x1) == 0)r--; //右指针找到不为偶数的位置 if(l >= r)break; //左右边界相交,完成位置调整,退出 tmp = array[l]; //交换l r元素 array[l] = array[r]; array[r] = tmp; l++, r--; //边界移动 } return array; }