c++ - 一道hash算法题目
怪我咯
怪我咯 2017-04-17 14:44:13
0
4
566

题目描述:给你n个整数,请按从大到小的顺序输出其中前m大的数
输入:每组测试数据有两行,第一行有两个数n,m(0<n,m<1000000),第二行包含n个各不相同,且都处于区间[-500000,500000]的整数
输出:对每组测试数据按从大到小的顺序输出前m大的数

这是我的代码:

只要一运行就报错,一下是报错的情况:

请教大家为什么程序运行不了呢,编译是正确的,十分感谢大家。

怪我咯
怪我咯

走同样的路,发现不同的人生

reply all(4)
黄舟

Everyone said that there is a problem with the open array of the topic, so I will put the code of the topic into OJ and run it

PS: There is a pitfall in the output format of the questioner. According to the principle of allowing the questioner to understand and make minimal modifications, I have improved your code

#include <stdio.h>
#define N 500000
int main() {
    int n, m;
    int t[1000001];
    while(scanf("%d%d", &n, &m) != EOF) {
        for(int i = 0; i <= 1000000; i++) {
            t[i] = 0;
        }
        while(n--) {
            int x;
            scanf("%d", &x);
            t[x+N]=1;
        }
        int num=0;
        for (int i = 1000000; i>=0; i--) {
            if (num==m) {
                printf("\n");
                break;
            }
            else if(t[i]==1) {
                printf("%d", i-N); // 这里没有空格了
                num++;
                if (num != m){
                    printf(" "); // 这里是个坑, 因为最后一个输出是没有空格的
                } 
            }
        }
    }
    return 0;
}

HDU

Nine Degrees


As mentioned in the title, the Hash algorithm is not a sorting problem.

This is a basic ACM question. Take the input number and add 500000 to avoid negative numbers as keys. Value is the number of occurrences. If the value is entered, it will be sorted directly.

Then when outputting, just output the keys whose value is not 0

Many answers online

http://www.cnblogs.com/acmer-...

巴扎黑

Open such a large array on the stack?

You don’t need to ask this kind of postgraduate entrance examination question.

黄舟

1. Define t to the heap
2. Enter n and m and then judge the size relationship. Is it better?

左手右手慢动作

If your array is too large, it is very likely that the stack will explode. You can try to use new to apply for an array.

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template