重新安排0和1

题目:

1,一个数组只包含0和1,重新安排数组,使得 0 处于数组左半部分,1处于数组右半部分

2,一个整数数组,重新安排数组,使得奇数(odd)处于数组左半部分,偶数(even)处于数组有半部分

分析:

双指针问题,思路虽然简单,但时时要保证左指针小于右指针

package javainterview.array;

public class ZeroAndOne {
	
	public static void reArrange(int[] arr){
		if(arr==null || arr.length<=1)
			return;
		int left = 0;
		int right = arr.length-1;
		while(left < right){
			while(arr[left]==0 && left < right)
				left++;
			while(arr[right]==1 && left < right)
				right--;
			if(left < right){
				arr[left] = 0;
				arr[right] = 1;
				left++;
				right--;
			}
		}
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] arr = {1,0,1,1,0,0};
		reArrange(arr);
		for(int item : arr){
			System.out.print(item+" ");
		}
	}
}


你可能感兴趣的:(0和1,双指针,奇和偶)