Giả sử chúng ta có một mảng A có độ dài dương, chúng ta phải tìm chu vi lớn nhất của một tam giác có diện tích khác 0, được hình thành từ 3 độ dài này. Khi không thể tạo thành bất kỳ tam giác nào có diện tích khác 0, thì trả về 0.
Vì vậy, nếu đầu vào là [3,6,2,3], thì đầu ra sẽ là 8.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- sắp xếp danh sách A
- a:=xóa phần tử cuối cùng khỏi A
- b:=xóa phần tử cuối cùng khỏi A
- c:=xóa phần tử cuối cùng khỏi A
- while b + c <=a, do
- nếu không A là khác 0, thì
- trả về 0
- a:=b
- b:=c
- c:=xóa phần tử cuối cùng khỏi A
- nếu không A là khác 0, thì
- trả về a + b + c
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Ví dụ
class Giải pháp:def lớn nhất nếu không phải A:return 0 a, b, c =b, c, A.pop () return a + b + cob =Solution () print (ob.largestPerimeter ([3,6,2,3]))Đầu vào
[3,6,2,3]Đầu ra
8