मान लीजिए कि हमारे पास सकारात्मक लंबाई की एक सरणी ए है, हमें इन लंबाई में से 3 से गठित गैर-शून्य क्षेत्र वाले त्रिभुज का सबसे बड़ा परिधि खोजना है। जब शून्येतर क्षेत्रफल का कोई त्रिभुज बनाना असम्भव हो तो 0 को वापस कर दें।
इसलिए, अगर इनपुट [3,6,2,3] जैसा है, तो आउटपुट 8 होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- सूची A को क्रमित करें
- a :=A से अंतिम तत्व हटाएं
- b :=A से अंतिम तत्व हटाएं
- c :=A से अंतिम तत्व हटाएं
- जबकि b+c <=a, do
- यदि नहीं तो A शून्य नहीं है, तो
- वापसी 0
- a :=b
- b :=c
- c :=A से अंतिम तत्व हटाएं
- यदि नहीं तो A शून्य नहीं है, तो
- a+b+c लौटाएं
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class Solution: def largestPerimeter(self, A): A.sort() a, b, c = A.pop(), A.pop(), A.pop() while b+c<=a: if not A: return 0 a, b, c = b, c, A.pop() return a+b+c ob = Solution() print(ob.largestPerimeter([3,6,2,3]))
इनपुट
[3,6,2,3]
आउटपुट
8