LeetCode演算法學習之路
阿新 • • 發佈:2018-12-10
前言
給定一個非負整數陣列
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
解題思路
一道很簡單題目,從題目中可以知道返回的結果陣列的左邊
都是偶數
,右邊
都是奇數
,而且題目沒有要求保留原陣列的元素的順序。所以可以利用這個特性實現一個複雜度為O(n)
的程式。
實現程式碼
public int[] sortArrayByParity(int[] A) { int[] result=new int[A.length]; int left=0;//左邊開始索引 int right=A.length-1;//右邊開始索引 for(int i=0;i<A.length;i++){ int a=A[i]; if(a%2==0){//偶數 result[left]=a; left++; }else{//奇數 result[right]=a; right--; } } return result; }