12345678910111213141516171819202122232425262728293031323334 |
- #include <iostream>
- #include <climits>
- int maxSubArraySum(int* arr, int size) {
- int maxSoFar = INT_MIN;
- int maxEndingHere = 0;
- for (int i = 0; i < size; ++i) {
- maxEndingHere = maxEndingHere + arr[i];
- if (maxSoFar < maxEndingHere) {
- maxSoFar = maxEndingHere;
- }
- if (maxEndingHere < 0) {
- maxEndingHere = 0;
- }
- }
- return maxSoFar;
- }
- int main() {
- int arr[] = {-2, 1, -3, 4, -1, 2, 1, -5, 4};
- int size = sizeof(arr) / sizeof(arr[0]);
- int maxSum = maxSubArraySum(arr, size);
- std::cout << "Максимальная сумма подмассива: " << maxSum << std::endl;
- return 0;
- }
|