查看: 44710| 回复: 21
跳转到指定楼层
上一主题 下一主题
收起左侧

[Leetcode] leetcode上的runtime error是咋回事儿?

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
rt。碰着过好几次了。也不提示啥错误就写着Run Status: Runtime Error。求助啊。。

上一篇:发个福利吧,CareerCup,5th Edition的 高清扫描版118M,积分要求降低了。快来下
下一篇:常见数据结构与编程面试题源代码分享
推荐
stellari 2015-6-25 18:13:32 | 只看该作者
全局:
chenyy0527 发表于 2015-6-25 12:48
如果我把 我自己写的 sortIntervals(...)那行代码注释掉,就不会出现runtime error
关键是我在VS上运 ...

没有warning只能说明你的程序语法上没问题,和runtime error没关系。VS上运行正常,假设你用的是和OJ上一模一样的代码和测试用例,那么基本上可以确认一点:你的程序中出现了数组越界的情况。这件事可能会导致内存访问错误,但运气好的话也可能不会出错。但是无论如何,隐患都在那里。

这题其实你没必要自己写sort函数,用STL的sort加一个自定义的compare函数就可以。
回复

使用道具 举报

推荐
chenyy0527 2015-6-25 12:48:01 | 只看该作者
全局:
vector<Interval> merge(vector<Interval>& intervals) {
                if (intervals.size() == 0){
                        return{};
                }
                //sort(intervals.begin(), intervals.end());
                sortIntervals(intervals, 0, intervals.size() - 1);
                vector<Interval> vec = {};

                int start = intervals[0].start;
                int end = intervals[0].end;

                for (int i = 0; i < int(intervals.size()); i++){
                        if (intervals[i].start > end){
                                vec.push_back(Interval(start, end));
                                start = intervals[i].start;
                                end = intervals[i].end;
                        }
                        else if (intervals[i].end > end){
                                end = intervals[i].end;
                        }
                }
                vec.push_back(Interval(start, end));
                return vec;
        }

        void sortIntervals(vector<Interval> & intervals, int p, int q){
                int i = p;
                int j = q-1;
                while (i < j){
                        while (intervals[i].start < intervals[q].start){
                                i++;
                        }
                        while (intervals[j].start > intervals[q].start){
                                j--;
                        }
                        if (i < j){
                                Interval tmp = intervals[i];
                                intervals[i] = intervals[j];
                                intervals[j] = tmp;
                                i++;
                                j--;
                        }
                }
                if (intervals[j].start > intervals[q].start){
                        Interval tmp = intervals[q];
                        intervals[q] = intervals[j];
                        intervals[j] = tmp;
                }


                if ((j-1) > p){
                        sortIntervals(intervals, p, j-1);
                }
                if ((j+1) < q){
                        sortIntervals(intervals, j, q);
                }
       
回复

使用道具 举报

🔗
zt7584 2013-6-25 01:19:26 | 只看该作者
全局:
一种是内存错误吧,例如访问了未定义的某块内存空间,int arr[8];但是访问了arr[8]这个元素。或者int *n = NULL; *n = 10;这种也会报内存错吧。

还有就是有endless loop吧,可能没有能使程序跳出某循环的条件存在。

我遇到的大部分是这两种错误,会导致runtime error。
回复

使用道具 举报

🔗
ac/dc 2013-6-25 01:49:26 | 只看该作者
全局:
99%是你dereference null pointer了,endless loop则会提示Time limit exceeded。
回复

使用道具 举报

🔗
1guangnian 2013-6-25 02:08:43 | 只看该作者
全局:
数组越界,除0,爆栈,访问空地址
回复

使用道具 举报

🔗
sherryweihao 2013-7-20 14:09:05 | 只看该作者
全局:
内存溢出
回复

使用道具 举报

🔗
mingmingya 2013-8-6 13:06:03 | 只看该作者
全局:
有时候print东西了也会有这个错误~
回复

使用道具 举报

🔗
WangUSTC 2013-10-17 01:16:26 | 只看该作者
全局:
SB!在这看到你了!
回复

使用道具 举报

🔗
_hao 2013-10-18 02:19:22 | 只看该作者
全局:
楼上确定么,我觉得是算法的时间复杂度太高了。
回复

使用道具 举报

🔗
grapeuncle 2013-11-12 14:34:34 | 只看该作者
全局:
基本都是内存错误:读写越界,stack overflow。
时间复杂度太高会报timeout
回复

使用道具 举报

🔗
li24yang75 2014-3-21 07:30:33 | 只看该作者
全局:
用java,涉及到字符串的比较 如果用的是 if(“hhh”==“hhhh”) 也会报这个错误 改成 s.equals();
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表