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

Saf*_*Saf 0 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分)

NB - 我住在爱尔兰所以这纯粹是出于我自己的经验,你不会帮我申请工作!另外,我在这里经历了每个类似的问题,但找不到任何相关的问题.

如果我对这个问题的解释是不正确的,那么我所需要的只是一个正确的方向,而不一定是代码.(如有,有人可以指出第二行如何评估为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);
    }
}
Run Code Online (Sandbox Code Playgroud)

mts*_*kov 5

我建议看一下Kadane的算法.

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