一道hash算法题目
题目描述:给你n个整数,请按从大到小的顺序输出其中前m大的数
输入:每组测试数据有两行,第一行有两个数n,m(0<n,m<1000000),第二行包含n个各不相同,且都处于区间[-500000,500000]的整数
输出:对每组测试数据按从大到小的顺序输出前m大的数
这是我的代码:
只要一运行就报错,一下是报错的情况:
请教大家为什么程序运行不了呢,编译是正确的,十分感谢大家。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
都说题主的开数组有问题我就把题主的代码放到OJ上去跑一下喽
PS: 题主的输出格式有个坑, 按照让题主理解和修改最小的原则我给你的代码完善了一下
HDU
九度的
题目都说了, Hash算法, 并不是排序问题.
这题ACM的基础题, 拿输入的数加上500000避免负数当key, value是出现的次数, 如果value在输入的时候就直接做到了排序.
然后输出的时候把只输出value不为0的key就可以了
网上很多答案
http://www.cnblogs.com/acmer-...
栈中开这么大的数组?
还有这种考研题不用这样问吧。
1.把t定义到堆
2.输入n,m之后再判断下大小关系,会不会好点
你的数组开得太大,很有可能爆栈。可以尝试用
new
申请一个数组。