Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में अधिकतम औसत सबट्री


मान लीजिए कि हमारे पास एक बाइनरी ट्री की जड़ है; हमें उस पेड़ के किसी भी उप-वृक्ष का अधिकतम औसत मान ज्ञात करना है। तो अगर पेड़ जैसा है -

पायथन में अधिकतम औसत सबट्री

आउटपुट 6 होगा, ऐसा इसलिए है, क्योंकि नोड 5 के लिए, यह (5 + 6 + 1)/3 =4 होगा, फिर नोड 6 के लिए यह 6/1 =6 होगा, और नोड 1 के लिए यह होगा 1/1 =1, इसलिए अधिकतम 6 है।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • रेस :=0

  • हल () नामक विधि को परिभाषित करें, यह जड़ लेगा

  • यदि रूट सेट नहीं है, तो एक जोड़ी लौटाएं [0, 0]

  • बाएँ:=हल करें (मूल के बाएँ) दाएँ:=हल करें (मूल का दाएँ)

  • सी :=बाएँ[0] + दाएँ[0] + 1

  • s :=बाएँ[1] + दाएँ[1] + मूल का मान

  • उत्तर :=अधिकतम और उत्तर s/c

  • एक जोड़ी लौटाएं[सी, एस]

  • मुख्य विधि से, उत्तर सेट करें:=0, हल (रूट) को कॉल करें और उत्तर वापस करें

उदाहरण (पायथन)

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

class TreeNode:
   def __init__(self, data, left = None, right = None):
      self.data = data
      self.left = left
      self.right = right
def insert(temp,data):
   que = []
   que.append(temp)
   while (len(que)):
      temp = que[0]
      que.pop(0)
      if (not temp.left):
         if data is not None:
            temp.left = TreeNode(data)
         else:
            temp.left = TreeNode(0)
         break
      else:
         que.append(temp.left)
      if (not temp.right):
         if data is not None:
            temp.right = TreeNode(data)
         else:
            temp.right = TreeNode(0)
         break
      else:
         que.append(temp.right)
def make_tree(elements):
   Tree = TreeNode(elements[0])
   for element in elements[1:]:
      insert(Tree, element)
   return Tree
class Solution(object):
   def helper(self, node):
      if not node:
         return 0, 0
      left_sum, left_count = self.helper(node.left)
      right_sum, right_count = self.helper(node.right)
      self.ans = max(self.ans, (left_sum + right_sum + node.data) / (left_count + right_count + 1))
      return left_sum + right_sum + node.data, left_count + right_count + 1
   def maximumAverageSubtree(self, root):
      self.ans = 0
      self.helper(root)
      return self.ans
ob = Solution()
root = make_tree([5,6,1])
print(ob.maximumAverageSubtree(root))

इनपुट

[5,6,1]

आउटपुट

6.0

  1. पायथन में अधिकतम सबरे

    मान लीजिए कि हमारे पास एक पूर्णांक सरणी ए है। हमें सन्निहित उपसरणियों को खोजना है, जिसकी लंबाई कम से कम एक होगी, और जिसका योग सबसे बड़ा है, और इसका योग भी लौटाएं। तो अगर एरे ए =[-2,1,-3,4,-1,2,1,-5,4] की तरह है, तो योग 6 होगा। और सबरेरे [4, -1] होगा , 2, 1] इसे हल करने के लिए हम गतिशील प्रोग्रामिंग

  1. पायथन कार्यक्रम अधिकतम तीन।

    तीन नंबर ए बी और सी को देखते हुए, हमारा काम यह है कि हमें दी गई संख्या में से अधिकतम तत्व को खोजना है। उदाहरण Input: a = 2, b = 4, c = 3 Output: 4 एल्गोरिदम Step 1: input three user input number. Step2: Add three numbers to list. Step 3: Using max() function to find the greatest number max(lst).

  1. पायथन में एक सूची का औसत खोजें?

    पायथन n तत्वों की संख्या की गणना के लिए योग फ़ंक्शन प्रदान करता है। यहां हम इस फ़ंक्शन का उपयोग करते हैं और फिर औसत की गणना करते हैं। एल्गोरिदम Step 1: input “size of the list” Step 2: input “Element” Step 3: using sum function calculate summation of all numbers. Step 4: calculate average. उदाहरण