【CodingBat】evenOdd问题

问题描述:evenOdd问题

Return an array that contains the exact same numbers as the given array, but rearranged so that all the even numbers come before all the odd numbers. Other than that, the numbers can be in any order. You may modify and return the given array, or make a new array.


evenOdd([1, 0, 1, 0, 0, 1, 1]) → [0, 0, 0, 1, 1, 1, 1]
evenOdd([3, 3, 2]) → [2, 3, 3]
evenOdd([2, 2, 2]) → [2, 2, 2]

Java代码:

public int[] evenOdd(int[] nums) {
  int N = nums.length;
  if(N<2) return nums;
  for(int i=1;i0) {
        if(nums[j-1]%2!=0) {
          int temp = nums[j-1];
          nums[j-1] = nums[j];
          nums[j] = temp;
          j--;
        }
        else break;
      }
    }
  }
  return nums;
}

思路:从第二个元素开始,遍历每个元素,如果是偶数,则与前一位的奇数互换位置直到前一位是偶数or本身已经是第一个元素

你可能感兴趣的:(【CodingBat】evenOdd问题)