LeetCode 905. 按奇偶校驗排序陣列 Java&Python
阿新 • • 發佈:2018-11-22
給定一個非負整數陣列 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
Java
採用雙指標的方式,如果為偶數,就新增到開頭,如果是奇數,就新增到尾部,無序考慮順序。
class Solution { public int[] sortArrayByParity(int[] A) { int len = A.length; int[] res = new int[len]; int leftIndex = 0; int rightIndex = A.length - 1; for (int a : A) { if (a % 2 == 0) { res[leftIndex] = a; leftIndex++; } else { res[rightIndex] = a; rightIndex--; } } return res; } }
Python
分別得出奇陣列和偶陣列,然後將兩個陣列拼接起來。
class Solution: def sortArrayByParity(self, A): E = [] O = [] N = [] for a in A: if a % 2 == 0: E.append(a) else: O.append(a) for e in E: N.append(e) for o in O: N.append(o) return N
使用N會比O+E快