微信红包

用栈优化:

#include <stdio.h>
#define MAXN 1000005
double stack[MAXN], temp;
int n, top;
int main()
{
    while(scanf("%d", &n) != EOF)
    {
        top = 0;
        for(int i = 0; i < n; i++)
        {
            scanf("%lf", &temp);
            if(top == 0) stack[top++] = temp;
            else if(stack[top - 1] == temp) stack[top++] = temp;
            else top--;
        }
        printf("%.2lf
", top == 0 ? -1 : stack[top - 1]);
    }
    return 0;
}
View Code

用2个变量代替栈:

#include <stdio.h>
double ans, temp;
int n, size;
int main()
{
    while(scanf("%d", &n) != EOF)
    {
        size = 0;
        for(int i = 0; i < n; i++)
        {
            scanf("%lf", &temp);
            if(size == 0) ans = temp, size++;
            else if(ans == temp) size++;
            else size--;
        }
        printf("%.2lf
", ans);
    }
    return 0;
}
View Code
原文地址:https://www.cnblogs.com/NWUACM/p/6391490.html