Python 程式檢查子列表和是否嚴格大於給定列表的總和


假設我們有一個名為 nums 的數字列表,我們需要檢查是否存在一個子列表,其總和嚴格大於該列表的總和。

因此,如果輸入類似於 nums = [1, −2, 3, 4],則輸出將為 True,因為列表的總和為 6,而子列表 [3, 5] 的總和為 8,嚴格大於 6。

為了解決這個問題,我們將遵循以下步驟:

  • total := nums 元素的總和

  • s := 0

  • 對於 nums 中的每個 i,執行以下操作:

    • s := s + i

    • 如果 s < 0,則

      • 返回 True

  • s := 0

  • i := nums 的大小 - 1

  • 當 i > -1 時,執行以下操作:

    • s := s + nums[i]

    • 如果 s < 0,則

      • 返回 True

    • 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

更新於: 2020年10月21日

231 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告