假设我们有一个称为nums的数字列表,我们必须检查是否有一个子列表,使其总和严格大于列表的总和。
因此,如果输入类似于nums = [1,-2,3,4],则输出将为True,因为列表的总和为6,子列表[3,5]的总和为8,即严格更大。
为了解决这个问题,我们将遵循以下步骤-
总数:=元素总数
s:= 0
对于每个以数字表示的i
返回True
s:= s + i
如果s <0,则
s:= 0
i:= nums的大小-1
当我> -1时
返回True
s:= s +数字[i]
如果s <0,则
i:= i − 1
返回False
让我们看下面的实现以更好地理解-
class Solution: def solve(self, nums): total = sum(nums) s = 0 for i in nums: s += i if s < 0: return True s = 0 i = len(nums) − 1 while i > −1: s += nums[i] if s < 0: return True i = i − 1 return False ob1 = Solution()nums = [2, -4, 3, 5] print(ob1.solve(nums))
[2, −4, 3, 5]
输出结果
True