【问题标题】:How to sum current index with all previous numbers inside an arraylist?如何将当前索引与数组列表中的所有先前数字相加?
【发布时间】:2016-12-01 01:09:17
【问题描述】:

我是 java 新手,我主要使用 C++,现在我在尝试对数组中当前索引的所有先前数字求和时遇到了一些麻烦。谢谢你的帮助:)。

public StaticStack<Integer> sumPrev(DoublyLinkedList<Integer> list, StaticStack<Integer> stack, int i){
    if(i < list.numElements()){
        stack.push(lista.get(i));
        i++;
        return sumPrev(listaD, pilhaS, i);
    }

    return stack;

}

我需要的是获取 lista.get(i) 加上列表中所有先前的数字。对不起我的英语,还在学习:(

【问题讨论】:

  • 删除Stack,返回int。像 return (i &gt; 0) ? list.get(i) + sumPrev(list, i - 1) : list.get(0);List 不是数组。

标签: java arrays recursion arraylist


【解决方案1】:

刚刚知道怎么做,这里是怎么做的:

public StaticStack<Integer> sum(DoublyLinkedList<Integer> list, StaticStack<Integer> stack, int i, int sum){
    if(i < list.numElements()){
        if(i == 0){
            stack.push(listaD.get(i));
            sum = list.get(i);
            i++;
            return acum(list, stack, i, sum);
        }
        else{
            stack.push(list.get(i) + sum);
            sum = sum + list.get(i);
            i++;
            return acum(list, stack, i, sum);
        }
    }

    return stack;

}

【讨论】:

    【解决方案2】:

    这是你想要的吗:

    List<Integer> list = IntList.range(1, 10).toList();
    List<Integer> sumList = new ArrayList<>();
    int sum = 0;
    
    for (int i = 0, len = list.size(); i < len; i++) {
        sum += list.get(i);
        sumList.add(sum);
    }
    
    System.out.println(list); // [1, 2, 3, 4, 5, 6, 7, 8, 9]
    System.out.println(sumList); // [1, 3, 6, 10, 15, 21, 28, 36, 45]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多