我正在解決codeeval.com上的問題 - http://codeeval.com/open_challenges/17/。 「編寫一個程序來確定列表中連續整數的最大總和」。確定列表中連續整數的最大總和java
輸入是一個包含逗號分隔的整數列表的文本文件,每行一個例如
-10,2,3,-2,0,5,-15
2,3,-2,-1,10
即輸入應產生8對第一行和12爲第二。我的答案在下面,但我看不到第二行如何得到12,所以我的問題主要是我錯過了什麼,我是否誤解了要求的內容? (我得到13的答案)
N.B. - 我住在愛爾蘭,所以這純粹是爲了我自己的經歷,你不會幫助我申請工作!另外,我在這裏經歷了所有類似的問題,並且找不到任何相關的問題。
如果我對問題的解釋不正確,我所需要的只是一個正確方向的點,不一定是代碼。 (如,能有人指出,第二行如何評估以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);
}
}
「我住在愛爾蘭所以這純粹是爲了我自己的經驗,你會不會幫助我工作申請」 - 生活在愛爾蘭與它有什麼關係? –
因爲對於在美國工作的人來說這是一份工作的挑戰...... 我只是爲了體驗而努力。不是工作申請。 – Saf
你的錯誤是你正在添加序列中最大的兩個數字。但他們不一定是連續的!在考慮的情況下,序列「3,10」不是解決問題的方法,但是它是由您的算法選擇的。有關如何解決問題的描述,請參閱@ mtsvetkov的答案。 – Vlad