leetcode.905 按奇偶排序陣列
阿新 • • 發佈:2018-11-14
給定一個非負整數陣列 A
,返回一個由 A
的所有偶數元素組成的陣列,後面跟 A
的所有奇數元素。
你可以返回滿足此條件的任何陣列作為答案。
示例:
輸入:[3,1,2,4] 輸出:[2,4,3,1] 輸出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也會被接受。
提示:
1 <= A.length <= 5000
0 <= A[i] <= 5000
思路:
從陣列末尾開始,如果碰到偶數不處理,碰到奇數,就和陣列末尾的 i 交換,將奇數交換到末尾去。用兩個指標,一個指標 j 遍歷陣列,一個指標 i 維護被換到末尾奇數的下標。
程式碼:
class Solution { public int[] sortArrayByParity(int[] A) { int i = A.length-1; for(int j = A.length-1; j >=0; j--){ if(A[j]%2 != 0){ int temp = A[i]; A[i] = A[j]; A[j] = temp; i--; } } return A; } }