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

पायथन में दोस्तों के कनेक्शन के एक सेट में मित्र समूहों की संख्या खोजने का कार्यक्रम

मान लीजिए कि हमारे पास एक मित्र सूची है, जहां मित्र [i] उन लोगों की सूची है जिनके साथ मैं मित्र हूं। दोस्ती का रिश्ता दोतरफा होता है। और प्रत्येक व्यक्ति अपने आप से मित्र है और दो व्यक्ति एक मित्र समूह में तब तक हैं जब तक परस्पर मित्रों को जोड़ने का कोई मार्ग है। हमें मित्र समूहों की कुल संख्या ज्ञात करनी है।

तो, अगर इनपुट दोस्तों की तरह है =[[0, 1, 5], [1, 0], [2], [3, 4], [4, 3], [5, 0]], तो आउटपुट 3 होंगे, क्योंकि तीन मित्र समूह इस प्रकार हैं -

पायथन में दोस्तों के कनेक्शन के एक सेट में मित्र समूहों की संख्या खोजने का कार्यक्रम

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

  • नोड्स :=दोस्तों का आकार
  • देखा गया :=नोड्स के समान आकार की एक सूची और गलत से भरें
  • उत्तर:=0
  • एक फ़ंक्शन को परिभाषित करें dfs() । यह शीर्ष पर जाएगा, दौरा किया
  • विज़िट किया[वर्टेक्स] :=सच
  • दोस्तों में प्रत्येक नी के लिए[वर्टेक्स], करें
    • अगर विज़िट किया गया [नेई] गलत है, तो
      • dfs(nei, देखे गए)
  • मुख्य विधि से, निम्न कार्य करें -
  • मैं के लिए 0 से नोड्स की सीमा में, करते हैं
    • अगर विज़िट किया गया[i] गलत है, तो
      • dfs(i, देखे गए)
      • उत्तर:=उत्तर + 1
  • वापसी उत्तर

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

उदाहरण

class Solution:
   def solve(self, friends):
      nodes = len(friends)
      visited = [False for _ in range(nodes)]
      ans = 0
      def dfs(vertex, visited): visited[vertex] = True
         for nei in friends[vertex]:
            if not visited[nei]:
               dfs(nei, visited)
      for i in range(nodes):
         if not visited[i]:
            dfs(i, visited)
            ans += 1
      return ans
ob = Solution()
friends = [ [0, 1, 5], [1, 0], [2], [3, 4], [4, 3], [5, 0] ]
print(ob.solve(friends))

इनपुट

[[0, 1, 5],
[1, 0],
[2],
[3, 4],
[4, 3],
[5, 0]
]

आउटपुट

3

  1. पायथन में एक श्रेणी में नोड्स की संख्या खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक बीएसटी है, और हमारे पास बाएं और दाएं सीमाएं एल और आर भी हैं, हमें रूट में उन सभी नोड्स की गिनती ढूंढनी है जिनके मान एल और आर (समावेशी) के बीच मौजूद हैं। तो, अगर इनपुट पसंद है l =7, r =13, तो आउटपुट 3 होगा, क्योंकि तीन नोड हैं:8, 10, 12. इसे हल करने के लिए, हम इन चरणों

  1. सूची में सबसे छोटी संख्या खोजने के लिए पायथन प्रोग्राम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें सभी सूची दी गई है, हमें सूची में उपलब्ध सबसे छोटी संख्या प्रदर्शित करने की आवश्यकता है यहां हम या तो सूची को क्रमबद्ध कर सकते हैं और सबसे छोटा तत्व प्राप्त कर सकते हैं या सबसे छोटा तत्व प्राप्त करने के लिए अंतर्न

  1. एक सूची में सबसे बड़ी संख्या खोजने के लिए पायथन कार्यक्रम

    इस लेख में, हम दिए गए समस्या कथन को हल करने के लिए समाधान और दृष्टिकोण के बारे में जानेंगे। समस्या कथन दी गई सूची इनपुट, हमें दी गई सूची में सबसे बड़ी संख्या खोजने की जरूरत है। यहां हम दो दृष्टिकोणों पर चर्चा करेंगे सॉर्टिंग तकनीकों का उपयोग करना अंतर्निहित अधिकतम() फ़ंक्शन का उपयोग करना दृष्टिक