Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

하위 목록 합계를 확인하는 프로그램이 주어진 목록의 총 합계보다 엄격하게 큽니다. Python

<시간/>

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