Я хотел бы найти максимальную подпоследовательность S(h,k)
в массиве integer. У меня уже есть код (в Java), чтобы найти максимальное значение, и он отлично работает, но как я могу получить два индекса h
и k
из следующего?Найти максимальную подпоследовательность массива с индексами
int []a = {-2, 1, -3, 4, -1, 2, 1, -5, 4 };
int max_so_far = 0, max_ending_here = 0;
for(int i=0; i<a.length; i++) {
max_ending_here = Math.max(0, max_ending_here + a[i]);
max_so_far = Math.max(max_so_far, max_ending_here);
}
System.out.println("The maximal sum of subsequence is = "+max_so_far)";
это то, что вы ищете? http://www.geeksforgeeks.org/largest-sum-contiguous-subarray/ –
Нет, это не так. Но я нашел на этом сайте правильное решение, работающее также со всеми отрицательными цифрами. http://code.geeksforgeeks.org/o4cxS2 –