LeetCode 训练场:905. 按奇偶排序数组
发布日期:2021-05-08 06:28:19 浏览次数:21 分类:精选文章

本文共 783 字,大约阅读时间需要 2 分钟。

题目

给定一个非负整数数组A,返回一个数组,使得A中的所有偶数元素之后跟着所有奇数元素。

描述

为了解决这个问题,我们需要将给定的数组分成两部分:所有偶数元素排在前面,所有奇数元素排在后面。输出数组可以是任何满足条件的形式。

思路

我们可以通过两次遍历数组来解决这个问题。第一次遍历数组,收集所有偶数元素;第二次遍历数组,收集所有奇数元素。然后将这两部分组合起来,得到最终的结果数组。

实现

public int[] sortArrayByParity(int[] A) {
int[] result = new int[A.length];
int index = 0;
// 第一次遍历:收集偶数
for (int item : A) {
if (item % 2 == 0) {
result[index++] = item;
}
}
// 第二次遍历:收集奇数
for (int item : A) {
if (item % 2 != 0) {
result[index++] = item;
}
}
return result;
}

代码解释

  • 声明结果数组:创建一个与输入数组长度相同的结果数组result,用于存储最终的偶数和奇数元素。
  • 第一次遍历:遍历输入数组A,检查每个元素是否为偶数。如果是,将其添加到结果数组中。
  • 第二次遍历:再次遍历输入数组A,检查每个元素是否为奇数。如果是,将其添加到结果数组中。
  • 返回结果:将最终的结果数组返回。
  • 这种方法的时间复杂度为O(n),其中n是输入数组的长度。通过两次遍历,我们可以高效地将偶数和奇数分开,并组合成所需的结果数组。

    上一篇:LeetCode 训练场:283. 移动零
    下一篇:LeetCode 训练场:977. 有序数组的平方

    发表评论

    最新留言

    第一次来,支持一个
    [***.219.124.196]2025年04月10日 23时45分25秒