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

สามเหลี่ยมปริมณฑลที่ใหญ่ที่สุดใน Python


สมมุติว่าเรามีอาร์เรย์ A ที่มีความยาวเป็นบวก เราต้องหาเส้นรอบรูปที่ใหญ่ที่สุดของสามเหลี่ยมที่มีพื้นที่ไม่เป็นศูนย์ ซึ่งประกอบขึ้นจาก 3 ความยาวเหล่านี้ เมื่อเป็นไปไม่ได้ที่จะสร้างสามเหลี่ยมใดๆ ของพื้นที่ที่ไม่ใช่ศูนย์ ให้คืนค่า 0

ดังนั้นหากอินพุตเป็น [3,6,2,3] เอาต์พุตจะเป็น 8

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

  • เรียงลำดับรายการ A
  • a :=ลบองค์ประกอบสุดท้ายออกจาก A
  • b :=ลบองค์ประกอบสุดท้ายออกจาก A
  • c :=ลบองค์ประกอบสุดท้ายออกจาก A
  • ในขณะที่ b+c <=a ทำ
    • ถ้าไม่ใช่ A ก็ไม่ใช่ศูนย์ แล้ว
      • คืน 0
    • a :=b
    • b :=c
    • c :=ลบองค์ประกอบสุดท้ายออกจาก A
  • ส่งคืน a+b+c

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

คลาสโซลูชัน:def ที่ใหญ่ที่สุดPerimeter(self, A):A.sort() a, b, c =A.pop(), A.pop(), A.pop() while b+c<=a:ถ้าไม่ใช่ A:คืนค่า 0 a, b, c =b, c, A.pop() return a+b+cob =Solution()print(ob.largestPerimeter([3,6,2,3])) 

อินพุต

[3,6,2,3]

ผลลัพธ์

8