Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมตรวจสอบผลรวมรายการย่อยมีค่ามากกว่าผลรวมของรายการที่ระบุอย่าง Python


สมมติว่าเรามีรายการตัวเลขที่เรียกว่า nums เราต้องตรวจสอบว่ามีรายการย่อยหรือไม่ โดยที่ผลรวมของตัวเลขนั้นมากกว่าผลรวมทั้งหมดของรายการอย่างเคร่งครัด

ดังนั้น หากอินพุตมีค่าเท่ากับ nums =[1, −2, 3, 4] ผลลัพธ์จะเป็น True เนื่องจากผลรวมของรายการคือ 6 และผลรวมของรายการย่อย [3, 5] คือ 8 ซึ่งก็คือ ใหญ่ขึ้นอย่างเคร่งครัด

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • ทั้งหมด :=ผลรวมของจำนวนองค์ประกอบ

  • s :=0

  • สำหรับแต่ละ i ใน nums ทำ

    • s :=s + ผม

    • ถ้า s <0 แล้ว

      • คืนค่า True

  • s :=0

  • ผม :=ขนาดของ nums − 1

  • ในขณะที่ i> -1 ทำ

    • s :=s + nums[i]

    • ถ้า s <0 แล้ว

      • คืนค่า True

    • ผม :=ผม − 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