(一)题目描述

(二)思想方法
设置两个指针,一个指向数组起始位置low=0;一个指向数组末尾high=A的大小减一。若数组low位置的数是偶数则low++,直到遇到奇数,high类似,若high的位置为奇数,则high--,直到遇到偶数,若此时low<high,则他俩交换。直到low不小于high。
(三)代码实现
class Solution {
public:
vector<int> sortArrayByParity(vector<int>& A)
{
int n = A.size();
int low = 0, high = n - 1;
int temp = 0;
while (low < high)
{
while (low<n&&A[low] % 2 == 0)
{
low++;
}
while (high>=0&&A[high] % 2 != 0)
{
high--;
}
if(low < high)
{
temp = A[high];
A[high] = A[low];
A[low] = temp;
}
}
return A;
}
};
本文介绍了一种使用双指针技巧进行数组奇偶排序的方法。通过设置两个指针,一个从数组头部开始寻找奇数,另一个从尾部开始寻找偶数,两者相遇时停止。在遍历过程中,将奇数和偶数进行交换,从而达到数组中所有偶数在前,奇数在后的效果。
&spm=1001.2101.3001.5002&articleId=91049063&d=1&t=3&u=624b10959e3347f2b3a22be12bc82d51)
3653

被折叠的 条评论
为什么被折叠?



