Вот мой код: < /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