g***j 发帖数: 1275 | 1 就是leetcode 里面的plus one, 为啥我把 那个如下return digits; 去掉之后,错误
说是这个?
Submission Result: Runtime Error
Last executed input: [1,0]
但是,我加上之后,就accpeted。 我知道为啥要加,但是,不懂如果不加为何这个
fail的case 过不去,还是runtime error,好像是segment 错误? 我在自己terminal
上测试是可
以过这个case的。百思不得其解,企盼赐教!
======================================
===
class Solution {
public:
vector plusOne(vector &digits) {
int size = digits.size();
if(size == 0) return digits;
int i = size - 1;
while( i >= 0 && digits[i] == 9) {
digits[i] = 0;
i--;
}
if( i < 0 ) {
digits.insert(digits.begin(),1);
//return digits;
}
digits[i] += 1;
return digits;
}
}; |
l*********8 发帖数: 4642 | 2 在i<0的时候访问digits[i]了
【在 g***j 的大作中提到】 : 就是leetcode 里面的plus one, 为啥我把 那个如下return digits; 去掉之后,错误 : 说是这个? : Submission Result: Runtime Error : Last executed input: [1,0] : 但是,我加上之后,就accpeted。 我知道为啥要加,但是,不懂如果不加为何这个 : fail的case 过不去,还是runtime error,好像是segment 错误? 我在自己terminal : 上测试是可 : 以过这个case的。百思不得其解,企盼赐教! : ====================================== : ===
|
g***j 发帖数: 1275 | 3 不是啊 如果输入是 1 0 ,while 结束后 i是1啊 不存在问题啊
【在 l*********8 的大作中提到】 : 在i<0的时候访问digits[i]了
|
g***j 发帖数: 1275 | 4 我的疑问是为啥那个case过不了,还是run time error
【在 l*********8 的大作中提到】 : 在i<0的时候访问digits[i]了
|
l*********8 发帖数: 4642 | 5 可能是lc输出的问题。 segment fault时输出的是上一个case?
【在 g***j 的大作中提到】 : 我的疑问是为啥那个case过不了,还是run time error : :
|
m*****n 发帖数: 2152 | 6 为什么comment out 那个return? 你i <0 的时候,在倒数第二行,还做加一,能不错
吗?至少加个else吧。
terminal
【在 g***j 的大作中提到】 : 就是leetcode 里面的plus one, 为啥我把 那个如下return digits; 去掉之后,错误 : 说是这个? : Submission Result: Runtime Error : Last executed input: [1,0] : 但是,我加上之后,就accpeted。 我知道为啥要加,但是,不懂如果不加为何这个 : fail的case 过不去,还是runtime error,好像是segment 错误? 我在自己terminal : 上测试是可 : 以过这个case的。百思不得其解,企盼赐教! : ====================================== : ===
|
g***j 发帖数: 1275 | 7 帖子问的不是这个问题。
【在 m*****n 的大作中提到】 : 为什么comment out 那个return? 你i <0 的时候,在倒数第二行,还做加一,能不错 : 吗?至少加个else吧。 : : terminal
|
g***j 发帖数: 1275 | 8 只能这么理解了。
【在 l*********8 的大作中提到】 : 可能是lc输出的问题。 segment fault时输出的是上一个case?
|
t**********h 发帖数: 2273 | 9 你不是退役了么?怎么还在刷题啊?
terminal
【在 g***j 的大作中提到】 : 就是leetcode 里面的plus one, 为啥我把 那个如下return digits; 去掉之后,错误 : 说是这个? : Submission Result: Runtime Error : Last executed input: [1,0] : 但是,我加上之后,就accpeted。 我知道为啥要加,但是,不懂如果不加为何这个 : fail的case 过不去,还是runtime error,好像是segment 错误? 我在自己terminal : 上测试是可 : 以过这个case的。百思不得其解,企盼赐教! : ====================================== : ===
|
i**********e 发帖数: 1145 | 10 真正导致 runtime error 的testcase 是上一个testcase [9],而不是 [1,0].
刚修复了这个问题,请你现在试试看。
terminal
【在 g***j 的大作中提到】 : 就是leetcode 里面的plus one, 为啥我把 那个如下return digits; 去掉之后,错误 : 说是这个? : Submission Result: Runtime Error : Last executed input: [1,0] : 但是,我加上之后,就accpeted。 我知道为啥要加,但是,不懂如果不加为何这个 : fail的case 过不去,还是runtime error,好像是segment 错误? 我在自己terminal : 上测试是可 : 以过这个case的。百思不得其解,企盼赐教! : ====================================== : ===
|
g***j 发帖数: 1275 | 11 现在好了!
可以问问为啥这个关于test case的bug发生了么?
【在 i**********e 的大作中提到】 : 真正导致 runtime error 的testcase 是上一个testcase [9],而不是 [1,0]. : 刚修复了这个问题,请你现在试试看。 : : terminal
|
i**********e 发帖数: 1145 | 12 在C++ 的世界里,数组越界操作就是 undefined behavior,幸运的话数组越界的时候
立刻SEGFAULT,有可能运行完全没有问题,也有可能之后才产生的 SEGFAULT.
你这个情况是 output 的时候才产生了SEGFAULT,这个产生的概率应该是很小很小的。
【在 g***j 的大作中提到】 : 现在好了! : 可以问问为啥这个关于test case的bug发生了么?
|
c***g 发帖数: 472 | 13 路过,没看明白,是digits[i] += 1; 越界了吧?
【在 i**********e 的大作中提到】 : 在C++ 的世界里,数组越界操作就是 undefined behavior,幸运的话数组越界的时候 : 立刻SEGFAULT,有可能运行完全没有问题,也有可能之后才产生的 SEGFAULT. : 你这个情况是 output 的时候才产生了SEGFAULT,这个产生的概率应该是很小很小的。
|