赞
踩
解题思路:
典型的双指针题型,定义左右指针,从左往右和从右往左出发,分别寻找左边的奇数和右边的偶数并交换,直到找不到(left > right),代码如下:
class Solution {
public:
vector<int> sortArrayByParity(vector<int>& nums) {
int n = nums.size();
int left = 0, right = n - 1;
while(left < right) {
// 左边找奇数
while(nums[left] % 2 == 0 && left < right) {
left ++;
}
// 右边找偶数
while(nums[right] % 2 != 0 && left < right) {
right --;
}
if(left >= right) break;
int temp = nums[left];
nums[left] = nums[right];
nums[right] = temp;
}
return nums;
}
};
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。