美文网首页LeetCode
905. 按奇偶排序数组

905. 按奇偶排序数组

作者: 闭门造折 | 来源:发表于2018-11-05 20:27 被阅读6次

    给定一个非负整数数组 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

    思路

    有点像27题移除元素
    使用一个辅助变量index,用来记录偶数末尾后一个位置
    遍历整个数组
    则nums[0, i]为当前遍历到的数组
    nums[0, index - 1]为当前得到的全偶数数组

    如果Nums[i]为偶数,则添加到全偶数数组末尾,由于本题不是删除,所以是和插入位作交换

    具体代码:

    class Solution {
        //交换函数
        public void swap(int[] A, int a, int b){
            int t = A[a];
            A[a] = A[b];
            A[b] = t;
            return;
        }
        public int[] sortArrayByParity(int[] A) {
            int index = 0; //全偶数数组大小
            for(int i = 0; i < A.length; i++){ //遍历原数组
                if(A[i] % 2 == 0){ // 假如该项为偶数
                    swap(A, index, i); //和全偶数数组后一位数字交换
                    index++; //全偶数数组大小++
                }
            }
            return A;
        }
    }
    

    相关文章

      网友评论

        本文标题:905. 按奇偶排序数组

        本文链接:https://www.haomeiwen.com/subject/uorexqtx.html