两次遍历:
- 1.奇数个数a+偶数个数b=数组长度N
- 2.保证相对位置不变,那么两次遍历
- 一次从前往后搞定奇数
- 一次从后往前搞定偶数
public int[] reOrderArray (int[] array) { if(array==null||array.length==0) return new int[]{}; int N = array.length; int[] res = new int[N]; //从左到右扫一遍,将奇数放到左边 int w = 0; for(int a:array){ if((a&1)!=0){ res[w++] = a; } } //从右往左扫一遍,将偶数放到右边 w = N-1; for(int i = N-1;i>=0;i--){ if((array[i]&1)==0){ res[w--] = array[i]; } } return res; }