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