剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
暴力法,双指针法
暴力法就是两次循环,一次找奇数,一次找偶数
双指针法就是两个指针i,j分别指向头和尾
指针i
从0开始,遇到奇数就i++;遇到偶数就与j交换,同时j--;
指针j
从length()-1开始,遇到偶数就j--;遇到奇数就与i交换,同时i++;
代码
class Solution {
public:
vector<int> exchange(vector<int>& nums) {
int i=0;
int j=nums.size()-1;
while(i<j)
{
int temp;
if(nums[i]%2==0)
{
temp=nums[i];
nums[i]=nums[j];
nums[j]=temp;
j--;
}else
{
i++;
}
if(nums[j]%2==0)
{
j--;
}else{
temp=nums[i];
nums[i]=nums[j];
nums[j]=temp;
i++;
}
}
return nums;
}
};