Самая маленькая сумма смежного субрайJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Самая маленькая сумма смежного субрай

Сообщение Anonymous »

Итак, я пытался написать метод, который принимает массив в качестве ARG, и вернуть наименьшую сумму смежного Subarray. Я попробовал несколько ввода и когда был тринг arr [] = {10, -5, 2, -1, 7, -3}, а выход, который я должен получить, {-5, 2, -1}, а сумма - 4, но я получил выход {-5}. Я не знаю, может ли кто -нибудь мне помочь. Спасибо!
Вот мой код: < /p>
'' '
public static int [] stavesumsubarray (int arr []) {< /p>

Код: Выделить всё

    if(arr == null || arr.length == 0) {
return new int[] {};                //Return an empty array if input is empty
}
int minSum = Integer.MAX_VALUE;
int start = 0;
int end = 0;
//iterate through the array starting from the second element
for(int i = 0; i < arr.length; i++) {
int crntSum = 0;
for(int j = i; j < arr.length; j++) {
crntSum += arr[j];
if(crntSum < minSum) {
minSum = crntSum;
start = i;
end = j;
}
}
}
return Arrays.copyOfRange(arr, start, end + 1);
}

public static void main(String[] arg) {

int arr[] = {10, -5, 2, -1, 7, -3};

int[] smallestSubarray = smallestSumSubarray(arr);
System.out.print("The smallest subarray is: ");
for(int num : smallestSubarray) {
System.out.print(num + " ");
}

}
'''

Подробнее здесь: https://stackoverflow.com/questions/793 ... s-subarray
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»