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
廣告