使用两次遍历解决“按奇偶排序数组”问题

Posted &小小白&

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用两次遍历解决“按奇偶排序数组”问题相关的知识,希望对你有一定的参考价值。

二十七、按奇偶排序数组

27.1、题设要求

  给你一个整数数组 nums,将 nums 中的的所有偶数元素移动到数组的前面,后跟所有奇数元素。

  返回满足此条件的 任一数组 作为答案。

示例 1:

输入:nums = [3,1,2,4]
输出:[2,4,3,1]
解释:[4,2,3,1]、[2,4,1,3] 和 [4,2,1,3] 也会被视作正确答案。

示例 2:

输入:nums = [0]
输出:[0]

提示:

1 <= nums.length <= 5000
0 <= nums[i] <= 5000

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/sort-array-by-parity

27.2、解题思路

  先遍历数组,将数字对2取余,取余为0,将数字加入新的数组中;再重新遍历一遍数组并对数组对2取余,取余为1,将数字加入新的数组中即可.

27.3、算法

class Solution 
    public int[] sortArrayByParity(int[] nums)
        int len = nums.length;
        int[] result = new int[len];
        int index = 0;
        //先将nums中的偶数取出来并存入新的数组中
        for (int i = 0; i < len; i++) 
            if (nums[i] % 2 == 0)
                result[index++] = nums[i];
            
        
        //再将nums中的奇数取出来并存入新的数组中
        for (int i = 0; i < len; i++) 
            if (nums[i] % 2 == 1)
                result[index++] = nums[i];
            
        
        return result;
    

以上是关于使用两次遍历解决“按奇偶排序数组”问题的主要内容,如果未能解决你的问题,请参考以下文章

使用两次遍历解决“按奇偶排序数组”问题

LeetCode 0905「按奇偶排序数组」

LeetCode 0905「按奇偶排序数组」

LeetCode 0905「按奇偶排序数组」

LeetCode 0905「按奇偶排序数组」

按奇偶排序数组