A23979. 给定一个整数数组 nums ,下面代码找到一个具有最大和的连续子数组,并返回其最大和。则下面说法错误的是( )。import math def crossSum(nums, left, mid, right): leftSum = -math.inf sum_val = 0 for i in range(mid, left - 1, -1): sum_val += nums[i] leftSum…
单选题
困难
知识点
题目描述
给定一个整数数组 nums ,下面代码找到一个具有最大和的连续子数组,并返回其最大和。则下面说法错误的是( )。
import math
def crossSum(nums, left, mid, right):
leftSum = -math.inf
sum_val = 0
for i in range(mid, left - 1, -1):
sum_val += nums[i]
leftSum = max(leftSum, sum_val)
rightSum = -math.inf
sum_val = 0
for i in range(mid + 1, right + 1):
sum_val += nums[i]
rightSum = max(rightSum, sum_val)
return leftSum + rightSum
def helper(nums, left, right):
if left == right:
return nums[left]
mid = left + (right - left) // 2
leftMax = helper(nums, left, mid)
rightMax = helper(nums, mid + 1, right)
crossMax = crossSum(nums, left, mid, right)
return max(leftMax, rightMax, crossMax)
def maxSubArray(nums):
return helper(nums, 0, len(nums) - 1)选项(单选)
答案解析
详细答案解析为会员权益,按每日次数查看。
开通 / 升级会员
上一题
下一题