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