Leecode163:缺失的区间

这道题乍一看容易,思索片刻后发现其实很有难度,因为首先,确定一个容器里面除掉另外一个容器这个操作怎么实现?其次,该用几个判断条件和循环来解决?

Leecode163:缺失的区间_第1张图片

 这种情况下会出现内存访问越界的问题,所以绝对不能忽视这种方法下的这个问题

在nums2的尾部加上一个数(比如-2000),然后将循环长度改为nums2.size()-1,就可以得到想要的结果,但是一旦测试用例过大,就超出了int的边界。 

Leecode163:缺失的区间_第2张图片

 

Leecode163:缺失的区间_第3张图片

下面减少了循环数,但是nums尾部加0会导致丢失最后一部分,所以在nums后push_back一个upper+1就可以解决这个问题。没有必要给那么多循环。使用类似双指针的思路,效果非常好!nums[i]-1大于lower这个条件也是绝不可忽略的。

Leecode163:缺失的区间_第4张图片

 

你可能感兴趣的:(刷题日记,数据结构)