合并1个数组的元素以使用for循环创建一个新数组

理查德·佩纳(Richard Pena)

大家下午好

我被分配了一个编程问题,在该问题中,我需要采用具有多个元素的单个数组,并配置一个新数组。

新数组将由前两个元素的总和组成,然后由后两个元素的总和组成,依此类推。

如果原始数组的元素数为奇数,则最后一个值将保持不变,且总和值在前。

public static int[] collapse(int[] old) {
    int[] nNew = new int[old.length];        
    if(old.length%2 == 0){
        nNew = new int[old.length/2];    
        for(int i =0; i<nNew.length; i+=2) {                        
            int temp = old[i] + old[i+1];
            nNew[i] = temp;            
        }                   
    }
     //i tried to for loop to increment by 1 here, but it didn't work out.
     //I believe this is where my problem is.

    if(old.length%2 != 0) {
        nNew = new int[(old.length/2) +1];        
        for(int i =0; i<nNew.length-1; i++) {
            //I can't get an Odd number of array elements to increment by 2
            int temp = old[i] + old[i+1];
            nNew[i] = temp;
            nNew[nNew.length-1] = old[old.length-1];
        }                
    }    
    return nNew; 
}

调用示例包括:

collapse({7, 2, 8, 9, 4, 13, 7, 1, 9, 10}) 
expected: {9, 17, 17, 8, 19}
my result: {9, 0, 17, 0, 17}

collapse({1, 2, 3, 4, 5}) 
expected: {3, 7, 5} 
my result: {3, 5, 5}
shmosel

无需单独的循环。只需在同一循环中检查:

public static int[] collapse(int[] old) {
    int[] nNew = new int[(old.length + 1) / 2];
    for (int i = 0; i < old.length; i += 2) {
        nNew[i / 2] = old[i];
        if (i + 1 < old.length) {
            nNew[i / 2] += old[i + 1];
        }
    }
    return nNew;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用一个数组的元素作为索引来创建新数组,以选择其他数组中的元素-JavaScript

合并数组以在Perl中创建一个新数组

使用for循环和另一个数组填充一个数组

移动第一个数组元素以C#结尾

从每个javascript数组concat中获取1个元素,然后循环到一个数组中

从另一个数组中的项目创建一个新数组

如何使用数组元素作为循环中另一个数组的索引?

使用每个数组创建一个新对象

PHP合并两个数组以创建一个新数组

使用foreach循环php在另一个数组中创建数组

PowerShell数组的任何元素以另一个数组中的任何元素结尾

如何使用另一个数组的行中的列创建一个新数组?[php]

如何删除一个数组中的元素以便另一个数组

将键从一个数组匹配到另一个数组,并使用它们的值创建一个新数组?

在PHP中的foreach循环中插入每个元素之后,如何创建一个数组?

需要一个数组,其中新数组的第一个元素=除第一个元素以外的所有元素的和

从另一个数组的元素创建数组

创建一个新数组并合并

使用从另一个数组派生的项目创建一个新数组

在 Javascript 中,如何使用另一个数组创建新数组

比较两个数组并使用差异创建一个新数组,考虑重复

合并一个数组 PHP 的元素

使用两个数组中的公共元素创建一个新数组

使用 JavaScript 使用多维数组的一个元素创建一个新数组

将一个数组的元素以相反的顺序存储到另一个数组中

如何使用另一个数组键创建新数组?

使用 JavaScript 中的“reduce”从另一个数组创建新数组

使用另一个数组创建一个由 1 和 0 组成的数组

如何从另一个数组创建一个新数组?