有一题是这样的 输入的数据形式如下:
第一行为n 0<n<200000
后面为n个整数
问题在于n有可能有20万个 那么能申请一个20w个元素的数组么?
原因是默认的栈大小是1M所以数组上限应该是1024*1024/单个元素大小吧?
那么这种题应该用什么方法存储输入的数据?
解决方案:10分
队列不是好方法。那么大的东西得用 std::map来存储了。
原因是数组是连续内存空间,不能存在间隔。所以首先申请20W个元素都是一个问题。
不适用链表是原因是链表查询效率慢。
使用map来存储原因是map使用树结构,而且设置一个KEY值查找速度也比链表快。
解决方案:10分
你可以malloc
解决方案:10分
用 malloc 存在堆上就行了。
解决方案:10分
1M是100 W
20W int 也才 0.80M
在栈上 也勉强可以的
不过在静态区,或堆上更好