मान लीजिए हमारे पास धनात्मक लंबाई की एक सरणी 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 शून्येतर नहीं है, तो
- 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