Majority Element


  • -1
    2

    /* Program for finding out majority element in an array */

    include<stdio.h>

    define bool int

    int findCandidate(int *, int);
    bool isMajority(int *, int, int);

    /* Function to print Majority Element /
    void printMajority(int a[], int size)
    {
    /
    Find the candidate for Majority*/
    int cand = findCandidate(a, size);

    /* Print the candidate if it is Majority*/
    if (isMajority(a, size, cand))
    printf(" %d ", cand);
    else
    printf("No Majority Element");
    }

    /* Function to find the candidate for Majority */
    int findCandidate(int a[], int size)
    {
    int maj_index = 0, count = 1;
    int i;
    for (i = 1; i < size; i++)
    {
    if (a[maj_index] == a[i])
    count++;
    else
    count--;
    if (count == 0)
    {
    maj_index = i;
    count = 1;
    }
    }
    return a[maj_index];
    }

    /* Function to check if the candidate occurs more than n/2 times */
    bool isMajority(int a[], int size, int cand)
    {
    int i, count = 0;
    for (i = 0; i < size; i++)
    if (a[i] == cand)
    count++;
    if (count > size/2)
    return 1;
    else
    return 0;
    }

    /* Driver function to test above functions */
    int main()
    {
    int a[100],n;
    cin>>n;
    for(i=0;i<=n;i++)
    printMajority(a, size);
    getchar();
    return 0;
    }


Log in to reply
 

Looks like your connection to LeetCode Discuss was lost, please wait while we try to reconnect.