Runtime Error和Output Limit Exceeded

在刷leetcode的题目时,时常会出现在本地编译通过且运行测试数据正确,但提交后出现Runtime Error和Output Limit Exceeded的错误提示,再此分析一下这个错误的来源。

首先Runtime Error,运行时错误,这个我遇到多次都是由于数组越界造成的。还有一次是用vector时,迭代器访问出错,比如出现了v.begin()-1这样的迭代器导致的出错。如果出现这个提醒,需要把数组开大点,或者回头看看哪里有可能出现数组或迭代器前后越界的情况。在数组较少的情况下,这个还是很好找的。

Output Limit Exceeded就让人摸不着头脑了,其实这只是提醒你输出的数据比预期的数据多很多。其实就是WA,但是此时不会提供出错的数据,而同时这个情况的出错数据时很容易试出来的。方法:找出临界情况的数据,通常是一些极端情况,这个一般很好判断。测试这些数据,一般就能发现问题所在了。

Timing Limit Exceeded:时间超出,这要改进算法来实现了,比如用vector容器不断删除连续元素时,可以先记录下删除的起始和终止的下标,一次性进行删除,可以节省时间。这就需要最起码要了解容器操作的复杂度,甚至应该通读一下STL源码,了解其内部的运行机制,这样出问题了也知道应该改那部分,或者是最有可能是哪部分出了问题。

leetcode是比较好的OJ网站,因为它提供Wrong Answer的测试数据,还有个网站:hihocoder.com这个也不错,每周一题,同时可以看到别人的代码,很有帮助的一个网站。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值