题解 | #调整数组顺序使奇数位于偶数前面(二)#
调整数组顺序使奇数位于偶数前面(二)
http://www.nowcoder.com/practice/0c1b486d987b4269b398fee374584fc8
解法:双指针
left指向数组左端0,right指向数组右端len-1
left指针往右走,遇到奇数直接+1
right指针往左走,遇到偶数直接-1
之后交换left和right各自指向的值
直到退出循环,返回array
public class Solution {
public int[] reOrderArrayTwo (int[] array) {
// write code here
int left=0,right=array.length-1;
while(left<=right){
while(left<right && array[left]%2==1) left++;
while(left<right && array[right]%2==0) right--;
//交换
int temp = array[left];
array[left] = array[right];
array[right] = temp;
left++;
right--;
}
return array;
}
}
阿勇算法解集 文章被收录于专栏
对一些基础的,经典的题目的算法题解,每道题的题解尽量做到一题多解,举一反三。其中每一个题解中,若是参考了其他牛人的想法,我会备注出来。