楼主: zhujl1991
跳转到指定楼层
上一主题 下一主题
收起左侧

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

🔗
newhoughton 2014-3-26 14:49:25 | 只看该作者
全局:
数组或者指针访问越界了之类的
基本是内存错误
回复

使用道具 举报

🔗
pyemma 2014-3-26 15:03:23 | 只看该作者
全局:
_hao 发表于 2013-10-18 02:19
楼上确定么,我觉得是算法的时间复杂度太高了。

时间复杂度太高应该报TLE的错误吧
回复

使用道具 举报

🔗
zheng18552 2014-3-26 15:07:26 | 只看该作者
全局:
ask at stackoverflow and post your error code
回复

使用道具 举报

🔗
geniusjulia 2014-3-27 06:37:52 | 只看该作者
全局:
把你错误的代码发上来看看啊
回复

使用道具 举报

🔗
glh18471923 2014-3-27 06:40:20 | 只看该作者
全局:
一般都是访问内存地址出错了,比如在一个数组中, 指向的位置出错
回复

使用道具 举报

🔗
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);
                }
       
回复

使用道具 举报

🔗
chenyy0527 2015-6-25 12:48:58 | 只看该作者
全局:
chenyy0527 发表于 2015-6-25 12:48
vector merge(vector& intervals) {
                if (intervals.size() == 0){
                        return{};

如果我把 我自己写的 sortIntervals(...)那行代码注释掉,就不会出现runtime error
关键是我在VS上运行很正常,连warning 都没有啊
回复

使用道具 举报

🔗
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函数就可以。
回复

使用道具 举报

🔗
love1point 2015-6-25 18:40:22 | 只看该作者
全局:
pyemma 发表于 2014-3-26 15:03
时间复杂度太高应该报TLE的错误吧

请问TLE全称是啥啊,谢啦
回复

使用道具 举报

🔗
owo111 2015-6-25 19:42:23 | 只看该作者
全局:
love1point 发表于 2015-6-25 18:40
请问TLE全称是啥啊,谢啦

Time limit exceeded
回复

使用道具 举报

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

本版积分规则

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