由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - leetcode 的 triangle 一题 oj 怎么不过
相关主题
问一个C的简单问题一道 C++ 的题。
一个C++的问题!离奇的Amzaon第一轮电面
问几个coding中的behavior question中国人面试果然很好人
问一道书上看到的题C++里get array size的问题
一个实际的排序问题C++ Q21: size of virtual table
leetcode上一题,求正解C++ Q35: sizeof() (B20_20)
问个anagram的问题C++ Q41: std::sort (C4)
leetcode 的 permutations 一题 oj 怎么不过C++ Q58: size of pointer (Bloomberg)
相关话题的讨论汇总
话题: sizeof话题: int话题: vi话题: vmin话题: x7
进入JobHunting版参与讨论
1 (共1页)
p****o
发帖数: 46
1
41 / 43 test cases passed.
Status: Wrong Answer

Input: [[-9],[-8,0],[-3,2,5],[6,3,0,-4],[-2,-9,-5,-8,6],[0,-5,0,-2,-1,5]
,[0,6,-1,-5,-8,6,-5],[-8,-5,-9,-8,-4,-3,-5,7]]
Output: -1217805963
Expected: -41
code:
class Solution {
public:
int minimumTotal(vector > &triangle) {
// Start typing your C/C++ solution below
// DO NOT write int main() function

int n = triangle.size();
vector vmin(n, 0);
while (n--){
for (int i=0; i<=n; i++){
vmin[i]=triangle[n][i]+min(vmin[i], vmin[i+1]);}
}
return vmin[0];
}
};
但我自己算出来的是-41.
int main(){
// [[-9],[-8,0],[-3,2,5],[6,3,0,-4],[-2,-9,-5,-8,6],[0,-5,0,-2,-1,5],[0,
6,-1,-5,-8,6,-5],[-8,-5,-9,-8,-4,-3,-5,7]]
int x1[1] = { -9 };
int x2[2] = { -8,0 };
int x3[3] = { -3,2,5 };
int x4[4] = { 6,3,0,-4 };
int x5[5] = { -2,-9,-5,-8,6 };
int x6[6] = { 0,-5,0,-2,-1,5 };
int x7[7] = { 0,6,-1,-5,-8,6,-5 };
int x8[8] = { -8,-5,-9,-8,-4,-3,-5,7};
VI v1(x1, x1 + sizeof x1 / sizeof x1[0]);
VI v2(x2, x2 + sizeof x2 / sizeof x2[0]);
VI v3(x3, x3 + sizeof x3 / sizeof x3[0]);
VI v4(x4, x4 + sizeof x4 / sizeof x4[0]);
VI v5(x5, x5 + sizeof x5 / sizeof x5[0]);
VI v6(x6, x6 + sizeof x6 / sizeof x6[0]);
VI v7(x7, x7 + sizeof x7 / sizeof x7[0]);
VI v8(x8, x8 + sizeof x8 / sizeof x8[0]);
VVI vvi;
vvi.push_back(v1);
vvi.push_back(v2);
vvi.push_back(v3);
vvi.push_back(v4);
vvi.push_back(v5);
vvi.push_back(v6);
vvi.push_back(v7);
vvi.push_back(v8);
Solution s;
int i = s.minimumTotal(vvi);
// print out -41 as expected
printf("min total is %dn", i);
}
h****g
发帖数: 105
2
i<=n
vmin[n+1] 越界了吧?
p****o
发帖数: 46
3
恩, 的确是越界了。 我如果把下面的改成
vector vmin(n+1, 0);
就全通过了。
但是好奇怪,越界的话, 为什么我本地机器跑没问题?
而且在leetcode上小的测试集全过了,大的测试集过了41个(out of 43).
如果越界的话,应该segmentation fault,一个都过不了啊。
请牛人指点。

【在 h****g 的大作中提到】
: i<=n
: vmin[n+1] 越界了吧?

b**m
发帖数: 1466
4
Undefined behavior,不一定是segmentation fault吧。

【在 p****o 的大作中提到】
: 恩, 的确是越界了。 我如果把下面的改成
: vector vmin(n+1, 0);
: 就全通过了。
: 但是好奇怪,越界的话, 为什么我本地机器跑没问题?
: 而且在leetcode上小的测试集全过了,大的测试集过了41个(out of 43).
: 如果越界的话,应该segmentation fault,一个都过不了啊。
: 请牛人指点。

h****g
发帖数: 105
5
C++并不检查数组越界,程序员可以访问数组之外的内存, 如果这个内存是合法的,编
译运行都不会报错,这属于undefined behavior,这种错误很难发现。有的时候这个数
组之外的内存是受保护的或者是非法的,那就会引起segmentation fault。 因此C++数
组越界 在不同的机器上可能会有不同的结果。

【在 p****o 的大作中提到】
: 恩, 的确是越界了。 我如果把下面的改成
: vector vmin(n+1, 0);
: 就全通过了。
: 但是好奇怪,越界的话, 为什么我本地机器跑没问题?
: 而且在leetcode上小的测试集全过了,大的测试集过了41个(out of 43).
: 如果越界的话,应该segmentation fault,一个都过不了啊。
: 请牛人指点。

1 (共1页)
进入JobHunting版参与讨论
相关主题
C++ Q58: size of pointer (Bloomberg)一个实际的排序问题
砸了面试,发面题leetcode上一题,求正解
Apple的一些C++概念题问个anagram的问题
C++ Q: sizeofleetcode 的 permutations 一题 oj 怎么不过
问一个C的简单问题一道 C++ 的题。
一个C++的问题!离奇的Amzaon第一轮电面
问几个coding中的behavior question中国人面试果然很好人
问一道书上看到的题C++里get array size的问题
相关话题的讨论汇总
话题: sizeof话题: int话题: vi话题: vmin话题: x7