给定一个整数数组nums,nums中一半的整数是奇数,另一半是偶数。对数组进行排序,使得无论何时nums[i]为奇数,我都为奇数,无论何时nums[i]为偶数,我都是偶数。返回满足此条件的任何答案数组。
我已经写了这个代码。
public static void main(String[] args) {
int[] nums = {1,3,5,7,2,4,6,8};
int[] res = new int[nums.length];
int a=0;
int b=0;
int c=1;
while (a < nums.length && b < nums.length+1 && c < nums.length+1){
if (nums[a]%2 == 0){
res[b] = nums[a];
a++;
b += 2;
}
if (nums[a]%2 != 0){
res[c] = nums[a];
a++;
c += 2;
}
}
for (int i : res){
System.out.println(res[i]);
}
System.out.println();
}
当在偶数空间中执行{1,3,5,7,2,4,6,8}时,它会填充"0",但当执行{2,4,6,8,10,1,3,5,7,9}时,会给出正确的答案。有人能帮我吗?
因为在第一种情况下,您的代码将奇数放入res
数组,然后由于c < nums.length+1
条件而停止。您只需要a < nums.length
作为while
条件。