下面是查找最大子数组总和的代码,该语句中有错误(可能导致错误的输出),该语句在代码语句后的右半部分注释。您需要为相应的语句选择错误的正确选项。
#include
using namespace std;
// Function to calculate maximum subarray sum
int maxSubArraySum(int a[ ], int size)
{
int max_so_far = a[0];
int curr_max = a[0];
for (int i = 1; i < size; i++)
{
curr_max = max(a[i], curr_max); // statement 1
max_so_far = max(max_so_far, curr_max); // statement 2
}
return max_so_far;
}
/* Driver program to test maxSubArraySum */
int main()
{
int a[] = {-2, -3, 4, -1, -2, 1, 5, -3};
int n = sizeof(a)/sizeof(a[0]);
int max_sum = maxSubArraySum(a, n);
cout << "Maximum contiguous sum is " << max_sum;
return 0;
}
(A)陈述1和陈述2两者。
(B)仅陈述1。
(C)仅陈述2。
(D)陈述1和陈述2均不存在。答案: (B)
说明:请参考:https://www.geeksforgeeks.org/largest-sum-contiguous-subarray/
这个问题的测验