java - 确定列表中连续整数的最大和java

标签 java arrays

我正在解决 codeeval.com 上的问题 - http://codeeval.com/open_challenges/17/ 。 “编写一个程序来确定列表中连续整数的最大和”。

输入是一个文本文件,包含逗号分隔的整数列表,每行一个,例如

-10, 2, 3, -2, 0, 5, -15

2,3,-2,-1,10

该输入应为第一行生成 8,为第二行生成 12。我的答案如下,但我看不到如何获得第二行的 12,所以我的问题主要是我错过了什么,我是否误解了要求的内容? (我的答案是 13)

注意- 我住在爱尔兰,所以这纯粹是我自己的经验,你不会帮助我申请工作!另外,我浏览了这里的每个类似问题,但找不到任何相关内容。

如果我对问题的解释不正确,我所需要的只是正确方向的一个点,而不一定是代码。 (例如,有人可以指出第二行的计算结果是 12 而不是 13)

import java.util.*;
import java.io.*;

public class largest_sum {

    public static void main(String[] args) throws Exception { 

        FileReader input = new FileReader(args[0]);
        BufferedReader bufRead = new BufferedReader(input);
        String line;

        line = bufRead.readLine();

        while(line != null) { 
            addInts(line);
            line = bufRead.readLine();
        }
        bufRead.close();
        System.exit(0);
    }

    public static void addInts(String line) {
        String[] numbers = line.split(",");
        Integer largest = Integer.parseInt(numbers[0].trim());
        Integer secondLargest = 0;
        for(String s : numbers) {
            Integer converted = Integer.parseInt(s.trim());
            if(converted > largest) {

                secondLargest =  largest;
                largest = converted;
            }
        }
        System.out.println(largest + secondLargest);
    }
}

最佳答案

我建议看看 Kadane's algorithm .

编辑:正如 @Paolo 和 @Vlad 指出的那样 - 你没有得到正确的结果,因为你正在添加最大的两个数字,而不是寻找序列。 Kadane 的算法通过首先查找数据集中每个位置处结束的最大总和来查找序列的最大总和。

关于java - 确定列表中连续整数的最大和java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12261252/

相关文章:

java - 带选项卡的 JFace 对话框

java - 如何从 Java Servlet 返回 JSON 对象

Java-在数组值中给出字符串,并按从最低到最高的数字顺序对它们进行排序

java - 为什么德鲁伊无法破译密码

java - 从字符串写入java文件(通过逐行读取文本文件中的字符串内容)

javascript - 循环导致 : "TypeError: Undefined is not a function"

c - 在循环中生成一个新数组

javascript - 根据javascript中的属性值动态对数组的数组进行排序

javascript - 使用php从URL获取json数据

java - JPA JPQL : SELECT NEW with COUNT, GROUP BY 和 ORDER BY