编写一个函数,该函数接受一个 int 数组,并将偶数和奇数的和作为数组返回。(在描述中阅读全文)

维沙尔·蒂瓦里

编写一个函数,将一个数组作为输入并返回一个包含 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章