给你一个整数数组 nums
,将 nums
中的的所有偶数元素移动到数组的前面,后跟所有奇数元素。
返回满足此条件的 任一数组 作为答案。
class Solution {
public int[] sortArrayByParity(int[] nums) {
int n = nums.length;
if(n == 1 )return nums;
int[] f = new int[n];
int cur = 0;
for(int i = 0; i < n;i++){
if(nums[i] % 2 == 0){
f[i-cur] = nums[i];
}else{
cur++;
f[n-cur] = nums[i];
}
}
return f;
}
}
优化空间
class Solution {
public int[] sortArrayByParity(int[] nums) {
int n = nums.length;
if(n == 1 )return nums;
int cur = 1;
for(int i = 0; i < n-cur;i++){
if(nums[i] % 2 == 1){
swap(nums,i,n-cur);
cur++;
i--;
}
}
return nums;
}
public void swap(int[] nums,int i,int j){
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}
执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户
内存消耗:42.4 MB, 在所有 Java 提交中击败了18.61%的用户