📜  算法测验|须藤放置[1.5] |问题8

📅  最后修改于: 2021-06-29 00:49:47             🧑  作者: Mango

下面是查找最大子数组总和的代码,该语句中有错误(可能导致错误的输出),该语句在代码语句后的右半部分注释。您需要为相应的语句选择错误的正确选项。

#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/
这个问题的测验