java - 有什么方法可以将这个列表中的第一个和最后一个元素相乘吗?

标签 java arraylist linked-list

我试图将此列表的第一个元素乘以最后一个元素,然后将倒数第二个元素乘以倒数第二个元素,依此类推。我有更好的方法吗?尝试这样做,但我在内循环中读取了相同的元素 3 次。

    long sum = 0;
    long temp = 0;

    for (int i = 0; i < list.size() / 2; i++) {

        for (int j = list.size() - 1; j >= list.size() / 2; j--) {

            temp = list.get(j) * list.get(i);
            sum += temp;
        }

    }

最佳答案

首先循环索引从 0 到数组长度的一半。然后将索引处的项目与数组长度 - 索引 - 1 处的项目相乘。

for(int index = 0; index < (list.size() / 2); index++) {
    sum += (list.get(index) * list.get(list.size() - index - 1));
}

关于java - 有什么方法可以将这个列表中的第一个和最后一个元素相乘吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54433576/

相关文章:

java - 在哪里存储 java stream helper 方法

java - 使用索引迭代 arraylist 中的项目

java - 更合适的说法是分摊 O(1) vs O(n) 插入未排序的动态数组?

java - 如何将字符串对象重新转换为 ArrayList<Entity>?

c++ - 侵入式、循环式、无分支式、双向链表——如何让链表识别节点成员字段?

c++ - 链接列表数组(使用散列)

java - for 循环外的变量被更改?

java - Hadoop/Eclipse - 线程 "main"java.lang.NoClassDefFoundError : org/apache/hadoop/fs/FileSystem 中的异常

java - C++ 中的 NULL 和 Java 中的 null 有什么区别?

java - 最大元素。算法