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

पायथन में मेजोरिटी एलिमेंट (Majority Element) खोजें

समस्या विवरण

एक पूर्णांक सरणी (array) दी गई है, उस तत्व को खोजें जो सरणी के आकार के आधे से अधिक बार आता है (मेजोरिटी एलिमेंट)।

उदाहरण 1

N = 8
A = [1,2,4,3,3,1,1,5]
आउटपुट: 1
व्याख्या: 1 तीन बार आता है (> 8/2 = 4? नहीं, 3 > 4 गलत है। वास्तव में यह उदाहरण गलत है।)

सुधार: मेजोरिटी एलिमेंट की परिभाषा: वह तत्व जो n/2 से अधिक बार आता है।

सही उदाहरण

N = 6
A = [2,1,1,2,2,2]
आउटपुट: 2
व्याख्या: 2 चार बार आता है (> 6/2 = 3)।

समाधान: हैश मैप (डिक्शनरी) आवृत्ति गणना

def checkMajorityElement(arr, N):
    freq = {}
    
    # आवृत्ति गिनें
    for num in arr:
        freq[num] = freq.get(num, 0) + 1
    
    # मेजोरिटी जांचें
    for num, count in freq.items():
        if count > N / 2:
            return num
    
    return -1

# टेस्ट
arr = [2,1,1,2,2,2]
N = 6
ans = checkMajorityElement(arr, N)

if ans != -1:
    print(f"मेजोरिटी एलिमेंट: {ans}")
else:
    print("मेजोरिटी एलिमेंट नहीं मिला")

आउटपुट

मेजोरिटी एलिमेंट: 2

बॉयर-मूर वोटिंग एल्गोरिदम (O(1) स्पेस):

def majorityElement(arr):
    candidate = None
    count = 0
    
    for num in arr:
        if count == 0:
            candidate = num
            count = 1
        elif num == candidate:
            count += 1
        else:
            count -= 1
    
    # सत्यापन चरण
    if arr.count(candidate) > len(arr) // 2:
        return candidate
    return -1

यह एल्गोरिदम O(n) समय और O(1) स्पेस में काम करता है।

  1. Python प्रोग्राम से ऐरे में सबसे बड़ा तत्व खोजना Python प्रोग्राम से ऐरे में सबसे बड़ा तत्व खोजना

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

  1. पायथन प्रोग्राम: ऐरे में सबसे बड़ा एलिमेंट ढूंढें पायथन प्रोग्राम: ऐरे में सबसे बड़ा एलिमेंट ढूंढें

    इस लेख में, हम दिए गए प्रॉब्लम स्टेटमेंट को हल करने के समाधान और दृष्टिकोण के बारे में सीखेंगे। प्रॉब्लम स्टेटमेंट इनपुट के रूप में एक ऐरे दिए जाने पर, हमें ऐरे में सबसे बड़ा एलिमेंट ढूंढने की आवश्यकता है। दृष्टिकोण हम max को पहले एलिमेंट के रूप में इनिशियलाइज़ करते हैं। इसके बाद, हम दिए गए ऐरे

  1. - पायथन प्रोग्राम: 2D ऐरे में k-वां सबसे छोटा एलिमेंट खोजना

    एक n×n यूजर इनपुट इंटीजर मैट्रिक्स दिया गया है और k का मान। हमारा कार्य 2D ऐरे में k-वां सबसे छोटा एलिमेंट ढूंढना है। यहां हम heapq मॉड्यूल का उपयोग करते हैं। पायथन में हीप क्यू (या heapq) उपलब्ध है। इस मॉड्यूल की तकनीक यह है कि हर बार हीप एलिमेंट का सबसे छोटा पॉप किया जाता है (मिन हीप)। nsmallest()