调整数组顺序使奇数位于偶数前面(简单)
2020年8月19日
题目来源:力扣
解题
用两个指针遍历整个数组,左指针从左边开始找偶数,右指针从右边开始找奇数,当找到了就进行数值交换。
如果左指针大于右指针,则说明数组遍历完。
同时,要注意左右指针是否过界,若过界就直接返回数组。
这里使用&1的位运算,相当于求余操作。
class Solution {
public int[] exchange(int[] nums) {
//数组长度
int len=nums.length;
int ou=0;
int ji=len-1;
while(ou<ji){
//当为偶数时停下来
while((nums[ou]&1)==1){
ou++;
if(ou>len-1) break;
}
while((nums[ji]&1)==0){
ji--;
if(ji<0) break;
}
if(ou<ji){
int tmp=nums[ou];
nums[ou++]=nums[ji];
nums[ji--]=tmp;
}
}
return nums;
}
}