nums라고 하는 숫자 목록이 있다고 가정하고 그 합이 목록의 총합보다 엄밀히 더 큰 하위 목록이 있는지 확인해야 합니다.
따라서 입력이 nums =[1, −2, 3, 4]와 같으면 목록의 합이 6이고 하위 목록 [3, 5]의 합이 8이므로 출력은 True가 됩니다. 엄격하게 더 큽니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
total :=요소 수의 합
-
s :=0
-
숫자로 된 각 i에 대해 수행
-
s :=s + i
-
s <0이면
-
참을 반환
-
-
-
s :=0
-
i :=숫자의 크기 - 1
-
i> -1인 동안 수행
-
s :=s + 숫자[i]
-
s <0이면
-
참을 반환
-
-
나는 :=나는 − 1
-
-
거짓을 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
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