跳到主要内容

905.按奇偶排序数组

链接:905.按奇偶排序数组
难度:Easy
标签:数组、双指针、排序
简介:给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。

题解 1 - cpp

  • 编辑时间:2022-03-23
  • 执行用时:56ms
  • 内存消耗:15.8MB
  • 编程语言:cpp
  • 解法介绍:遍历。
class Solution {
public:
vector<int> sortArrayByParity(vector<int>& nums) {
vector<int> ans;
ans.reserve(nums.size());
for (auto& num : nums) {
if (num & 1)
ans.push_back(num);
else
ans.insert(ans.begin(), num);
}
return ans;
}
};

题解 2 - go

  • 编辑时间:2022-04-28
  • 执行用时:4ms
  • 内存消耗:4.6MB
  • 编程语言:go
  • 解法介绍:双指针。
func sortArrayByParity(nums []int) []int {
var i1, i2 = 0, len(nums) - 1
for i1 < i2 {
for i1 < i2 && nums[i1]&1 == 0 {
i1 += 1
}
for i1 < i2 && nums[i2]&1 == 1 {
i2 -= 1
}
nums[i1], nums[i2] = nums[i2], nums[i1]
}
return nums
}