p****o 发帖数: 46 | 1 oj 在{0, 1}测试的结果是{{1}, {0,1}, {1,0}}
但我自己运行打印出来是{{0,1}, {1,0}}
请大伙帮忙看看。
代码如下
#include "stdio.h"
#include
using namespace std;
class Solution {
public:
vector > permute(vector &num) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
vector v(0);
doPermute(v, num);
return vv;
}
void doPermute(vector &v, vector &num) {
if(num.empty()) {
vv.push_back(v);
return;
} else {
for (int i = 0; i < num.size(); i++)
{
int toAdd = num[i];
vector rest(num);
rest.erase(rest.begin()+i);
vector prefix(v);
prefix.push_back(toAdd);
doPermute(prefix, rest);
}
}
}
vector > vv;
};
int main(){
Solution s;
// oj fails with following test case
int x[2]={0, 1};
vector vt(x, x + sizeof x / sizeof x[0]);
s.permute(vt);
// print out results
typedef vector >::iterator VVit;
typedef vector::iterator Vit;
for (VVit it1=s.vv.begin(); it1!=s.vv.end(); ++it1) {
for (Vit it2=it1->begin(); it2!=it1->end(); ++it2) {
printf("value is %d n", *it2);
}
}
} | g****o 发帖数: 547 | 2 clear vv first
leetcode反复调用的
【在 p****o 的大作中提到】 : oj 在{0, 1}测试的结果是{{1}, {0,1}, {1,0}} : 但我自己运行打印出来是{{0,1}, {1,0}} : 请大伙帮忙看看。 : 代码如下 : #include "stdio.h" : #include : using namespace std; : class Solution { : public: : vector > permute(vector &num) {
| p****o 发帖数: 46 | 3 多谢多谢。现在过了,我对leetcode还不熟,刚开始,看来还得多到板上啊。
【在 g****o 的大作中提到】 : clear vv first : leetcode反复调用的
|
|