905. 按奇偶排序数组

2019-01-01  本文已影响0人  郭昊峰

给定一个非负整数数组 A,返回一个由 A 的所有偶数元素组成的数组,后面跟 A 的所有奇数元素。

你可以返回满足此条件的任何数组作为答案。

示例:

输入:[3,1,2,4]输出:[2,4,3,1]输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。

直觉是通过for、if分开奇偶数,这个比较简单:

public class Solution {

    public int[] SortArrayByParity(int[] A) {

        int[] arr = new int[A.Length];

            int top = 0;

            int bottom = A.Length - 1;

            for (int i = 0; i < A.Length; i++)

            {

                if (A[i] % 2 == 0)

                {

                    arr[top] = A[i];

                    top++;

                }

                else

                {

                    arr[bottom] = A[i];

                    bottom--;

                }

            }

            return arr;

    }

}

还有比较取巧的办法:

public class Solution {

    public int[] SortArrayByParity(int[] A) {

        int index = 0;

            for (int i = 0; i < A.Length; i++) {

                if ((A[i] & 1) == 0) {

                    int tmp = A[i];

                    A[i] = A[index];

                    A[index++] = tmp;

                }

            }

            return A;

    }

}

上一篇下一篇

猜你喜欢

热点阅读