当前位置:网站首页>Haut OJ 1321: mode problem of choice sister

Haut OJ 1321: mode problem of choice sister

2022-07-05 05:17:00 hunziHang


Problem description :

Choice The elder sister returned home , hold n Put candies in boxes , The first i What kinds of candy do you have mi individual , She wants to know mi What is the number that appears most in , Can you tell her ? Ensure that the number with the most occurrences occurs more than n/2.

Input :

Enter an integer in the first line n(1 <= n <= 1e6).

Next line n It's an integer mi(1<= mi <= 1e9), It means the first one i The number of candies , Integers are separated by spaces .

( Pay attention to memory limitations , Mode occurs more than n/2)

Output :

Output mi The number that appears most in , Occupy a line .

The sample input :

5
10 10 10 20 30

Sample output :

10


Cause analysis :

data n Too big , The array stores the number of occurrences of each , Then cycle again to find the maximum , Time must have expired .

So you can One by one , Take a variable and save times , If equal, then the number ++, Otherwise times --, If it's reduced to 0 It means that this number is not a mode , Of course, the number of times -- The number of is certainly not the mode , for instance :  3 3 3  2 2 1     The last number is reduced to 0, 3 2 1  Certainly not the mode



Solution :

#include <stdio.h>

int main()
{
    int n, t, x, top;
    
    scanf("%d", &n);
    top = t = 0;
    for(int i = 1;i <= n; i++){
        scanf("%d",&x);
        if(x == t)
            top++;
        else if(top == 0) {
            t=x;
            top=1;
        }
        else
            top--;
    }
    printf("%d\n", t);
    
    return 0;
}


原网站

版权声明
本文为[hunziHang]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202140622509041.html