检查子列表总和的程序严格大于给定列表Python的总和

假设我们有一个称为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
    猜你喜欢