LeetCode 905. Sort Array By Parity 按奇偶校验排列数组

题目

Given an array A of non-negative integers, return an array consisting of all the even elements of A, followed by all the odd elements of A.

You may return any answer array that satisfies this condition.

Example 1:

Input: [3,1,2,4]
Output: [2,4,3,1]
The outputs [4,2,3,1], [2,4,1,3], and [4,2,1,3] would also be accepted.

Note:

  • 1 <= A.length <= 5000
  • 0 <= A[i] <= 5000

题解

题目大意:数组排序,偶数放前,奇数在后,偶数的数之间不用管顺序,奇数的数之间也不用管顺序
思路:建两个list,一个放偶数,一个放奇数,最后将两个list合并,转化为数组返回

class Solution {
    public int[] sortArrayByParity(int[] A) {
        ArrayList<Integer> oddList = new ArrayList<>();//存放奇数
        ArrayList<Integer> evenList = new ArrayList<>();//存放偶数
        for (int a : A) {
            if (a % 2 == 0) evenList.add(a);
            else oddList.add(a);
        }
        evenList.addAll(oddList);
        int[] arr = new int[A.length];
        for (int i = 0; i < A.length; i ++){
            arr[i] = evenList.get(i);
        }
        return arr;
    }
}
原文地址:https://www.cnblogs.com/xiehang/p/11267190.html