编写一个函数,将一个数组作为输入并返回一个包含 2 个数字的数组。返回的数组包含来自输入的偶数之和和奇数之和。
如果任何输入为空,则应将其视为空数组
输入:[30, 18, 2, 83, 20, 71] 输出:[70, 154]
输入:[14, 11, 10, 67, 41] 输出:[24, 119]
输入:[36, 24, -82, 29, 44, -3, -100, -5, 49] 输出:[-78, 70]
这是我到目前为止的进展,但一些测试用例失败了,我无法获得满分。任何帮助,将不胜感激。
PS我是初学者
//Function
public int[] getSumOfEvensAndOdds(int[] array) {
// Student code begins here
int[] res = {0,0};
int len = array.length;
if(array == null){
return res;
}
//logic
for(int i = 0; i < len; i++){
if(array[i] % 2 == 0){
res[0] += array[i];
} else if(array[i] % 2 != 0){
res[1] += array[i];
} else{
res[0] += 0;
res[1] += 0;
}
}
return res;
}
你需要测试null
之前,你设法得到array.length
。而且,您只需要if-else
循环中的一个(数字是偶数或奇数,没有三级状态)。喜欢,
public int[] getSumOfEvensAndOdds(int[] array) {
// Student code begins here
int[] res = { 0, 0 };
if (array == null) {
return res;
}
int len = array.length;
for (int i = 0; i < len; i++) {
if (array[i] % 2 == 0) {
res[0] += array[i];
} else {
res[1] += array[i];
}
}
return res;
}
或者即使没有if
也不像在回路中,
for (int i = 0; i < len; i++) {
int n = Math.abs(array[i] % 2);
res[n] += array[i];
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句