前言
Weekly Contest 102的第一题按奇偶校验排序数组:
给定一个非负整数数组
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;
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。