我在java中有以下Kadane算法的實現。基本上是找到連續子數組的最大總和。java中的kadane算法
String[] numbers = string.split(",");
int max_so_far = 0;
int max_ending_here = 0;
for (int i = 0; i < numbers.length-1;i++){
max_ending_here = max_ending_here + Integer.parseInt(numbers[i]);
if (max_ending_here < 0)
max_ending_here = 0;
if (max_so_far < max_ending_here)
max_so_far = max_ending_here;
}
System.out.println(max_so_far);
然而,如果存在負和正數的在陣列中的組合,這並不工作,例如下列:
2,3,-2,-1,10
哪個應該返回一個12爲最大。到目前爲止,它返回5
這裏有什麼問題?你嘗試過調試嗎? –
它現在給了什麼價值? – luketorjussen
或者i <= numbers.length-1會更好地理解長度。 – Kunalxigxag