给定一个整数数组nums,下面代码找到一个具有最大和的连续子数组,并返回该最大和。则下面说法错
误的是( )。
int crossSum(vector<int>& nums, int left, int mid, int right) { int leftSum = INT_MIN, rightSum = INT_MIN; int sum = 0; for (int i = mid; i >= left; i--) { sum += nums[i]; leftSum = max(leftSum, sum); } sum = 0; for (int i = mid + 1; i <= right; i++) { sum += nums[i]; rightSum = max(rightSum, sum); } return leftSum + rightSum;} int helper(vector<int>& nums, int left, int right) { if (left == right) return nums[left]; int mid = left + (right - left) / 2; int leftMax = helper(nums, left, mid); int rightMax = helper(nums, mid + 1, right); int crossMax = crossSum(nums, left, mid, right); return max({leftMax, rightMax, crossMax});} int maxSubArray(vector<int>& nums) { return helper(nums, 0, nums.size() - 1);}