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

ตรวจสอบว่าเป็นไปได้ที่จะสร้างรูปหลายเหลี่ยมที่มี n ด้านใน Python


สมมติว่าเรามีจำนวนอาร์เรย์ที่มีขนาดด้าน n เราต้องตรวจสอบว่าเราสามารถสร้างรูปหลายเหลี่ยมที่มีด้านที่กำหนดทั้งหมดได้หรือไม่

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

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

  • เรียงเลขรายการ
  • ถ้าองค์ประกอบสุดท้ายของ nums <ผลรวมขององค์ประกอบทั้งหมดใน nums ยกเว้นอันสุดท้าย แล้ว
    • คืนค่า True
  • คืนค่าเท็จ

ตัวอย่าง

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

def solve(nums):
   nums.sort()
   if nums[-1] < sum(nums[:-1]):
      return True
   return False
nums = [3, 4, 5]
print (solve(nums))

อินพุต

[3, 4, 5]

ผลลัพธ์

True