2017-04-27 105 views
0

给定一个正整数数组,返回包含来自原始数组的第一个偶数的长度“count”的新数组。原始数组至少包含“数”偶数。编码蝙蝠ap考试练习

copyEvens([3, 2, 4, 5, 8], 2) → [2, 4] 
copyEvens([3, 2, 4, 5, 8], 3) → [2, 4, 8] 
copyEvens([6, 1, 2, 4, 5, 8], 3) → [6, 2, 4] 

我的解决方案

public int[] copyEvens(int[] nums, int count) { 
int [] a= new int[count]; 
int w=0; 
for (int i= 0; i<nums.length ; i++) 
{ 
    if(nums[i]%2==0) 
a[w]=nums[i]; 
w++; 
} 
    return a; 
} 

能否请您解释一下为什么它不工作?

+0

能否请您解释一下为什么它不工作? –

回答

1

您的if(nums[i]%2==0)两个声明中没有大括号。所以if只适用于第一个,并且您增加w太多次。添加大括号。

if (nums[i] % 2 == 0) { 
    a[w] = nums[i]; 
    w++; 
} 

使用一个复合语句(但我宁愿第一溶液)

if (nums[i] % 2 == 0) 
    a[w++] = nums[i];