一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 1440|回复: 4
收起左侧

[Leetcode] [请教]LeetCode Merge Intervals的问题

[复制链接] |试试Instant~ |关注本帖
sqzhang17 发表于 2014-8-11 11:25:12 | 显示全部楼层 |阅读模式

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

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
请教大家一个问题~在leetcode merge intervals 这道题里面, 自己写的程序看了半天都没有问题~但是在OJ面前总是出现runtime error~最后找到了毛病~是出在了这个部位:
public class Solution {
        public ArrayList<Interval> merge(ArrayList<Interval> intervals) {
         /* Check Initial Input */
        if(intervals == null) return null;        // null intervals
        if(intervals.size() == 1) return intervals;        // intervals contains one range
        /* Check Initial Input Done*/


后面代码就省略了
       }


如果把红色的双等号改成“<=”~就没有问题了~

请教一下~为什么会出现runtime error? 是不是之后用到了intervals.get(0), 当带入的intervals是size是零的list的时候就出现了这个runtime error?

感谢大家指点~
1guangnian 发表于 2014-8-11 12:00:35 | 显示全部楼层
null equals size 0?
回复 支持 反对

使用道具 举报

 楼主| sqzhang17 发表于 2014-8-11 12:22:54 | 显示全部楼层

我之前也是这样想的~但是再想想不对啊~我之前排除了null的可能性~如果输入的intervals是null的话~在执行intervals.size() 的时候应该抛出 NullPointer的那个exception~而不是runtime error~

我觉得应该是当执行
List<Interval> intervals = new ArrayList<interval>();
的时候~就相当于建立一个新的array list~这个array list不是null~但是它的size是0~

之前没有考虑到这个部分~所以有了runtime error~

不知道说的对吗?这位兄台~你觉得呢?
回复 支持 反对

使用道具 举报

Linzertorte 发表于 2014-8-12 05:40:00 | 显示全部楼层
null与size ==0不是一回事。null是你这个reference不指向任何东西。size==0是说你这个东西是指向heap区new出来的一个ArrayList.但是这个ArrayList没有任何元素。而intervervals[0]访问第一个元素。当然就是越界了

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

 楼主| sqzhang17 发表于 2014-8-12 06:08:19 | 显示全部楼层
Linzertorte 发表于 2014-8-12 05:40
null与size ==0不是一回事。null是你这个reference不指向任何东西。size==0是说你这个东西是指向heap区new ...

嗯~明白了~多谢多谢~
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-5 10:37

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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