假设我们有一个数字num的列表,现在考虑一个num的循环列表,其中num的开始和结束是邻居。我们必须在循环列表中找到一个非空子列表的最大和。
因此,如果输入类似于nums=[2,3,-7,4,5],则输出将为14,因为我们可以将子列表[4、5、2、3]总计为14。
为了解决这个问题,我们将遵循以下步骤-
max_sum:=负无穷大,cur_max:=0
min_sum:=正无穷大,cur_min:=0
对于以num为单位的每个num
cur_max:=num的最大值和cur_max+num
max_sum:=max_sum和cur_max的最大值
cur_min:=num的最小值和cur_min+num
min_sum:=min_sum和cur_min的最小值
如果max_sum<=0,则
返回max_sum
返回max_sum和的最大值(所有元素的总和(以nums为单位)-min_sum)
让我们看下面的实现以更好地理解-
输出结果
14