f********a 发帖数: 1109 | 1 Unique Binary Search Trees II
class Solution {
public:
// return all combinations of trees with given start/end;
// if start>end return single item NULL in vector.
vector Helper(vector array, int s, int e) {
if (s>e) return vector(1, NULL);
// each item in the array range can be root.
vector combo;
for (int i=s; i<=e; ++i) {
vector left = Helper(array, s, i-1);
vector right = Helper(array, i+1, e);
// compose combo with combinations of all left/right
for (int j=0; i
for (int k=0; k
TreeNode* root = new TreeNode(array[i]);
root->left = left[j];
root->right = left[k];
combo.push_back(root);
}
}
}
return combo;
}
vector generateTrees(int n) {
// prepare an array
vector array;
for (int i=1; i<=n; ++i) {
array.push_back(i);
}
return Helper(array, 0, n-1);
}
};
[发表自未名空间手机版 - m.mitbbs.com] |
f********a 发帖数: 1109 | 2 自己运行结果都没问题。leetcode编译都出错
/usr/gcc_4_7/lib/gcc/i686-pc-linux-gnu/4.7.2/../../../../include/c++/4.7.2/
bits/stl_vector.h:1137:4: error: invalid conversion from 'int' to 'std::
vector::value_type {aka TreeNode*}' [-fpermissive]
[发表自未名空间手机版 - m.mitbbs.com] |
J****3 发帖数: 427 | 3 应该是出在 if( s > e) return vector(1, NULL) 这里
你改成 combo.push_back(NULL) return combo 试试
【在 f********a 的大作中提到】 : 自己运行结果都没问题。leetcode编译都出错 : /usr/gcc_4_7/lib/gcc/i686-pc-linux-gnu/4.7.2/../../../../include/c++/4.7.2/ : bits/stl_vector.h:1137:4: error: invalid conversion from 'int' to 'std:: : vector::value_type {aka TreeNode*}' [-fpermissive] : [发表自未名空间手机版 - m.mitbbs.com]
|
J****3 发帖数: 427 | 4 还有你这代码 循环里的Index 有问题吧 仔细找找? |
J****3 发帖数: 427 | 5 你初始化这个vector为 size为 1 元素为NULL 想法没有错, 但是结构体
TreeNode里的构造函数需要的参数为Int 所以报错
【在 f********a 的大作中提到】 : 自己运行结果都没问题。leetcode编译都出错 : /usr/gcc_4_7/lib/gcc/i686-pc-linux-gnu/4.7.2/../../../../include/c++/4.7.2/ : bits/stl_vector.h:1137:4: error: invalid conversion from 'int' to 'std:: : vector::value_type {aka TreeNode*}' [-fpermissive] : [发表自未名空间手机版 - m.mitbbs.com]
|