avatar
请教ebay 的面试题一道# JobHunting - 待字闺中
l*n
1
前几天面了ebay,请教一个题
给 1 输出 1
给 2 输出 11,12,21,22(4个数)
给 3 输出 111,112,113,121,122,123,132,133,211,212,213,221,222,223,231,232,
233,311,312,313,321,322,323,331,332,333 (27个数)
给 n 输出所有可能
dfs?NP?怎么做好一些啊
avatar
h*d
2
就dfs吧 和permutation的不同是 可以往回加入重复的
遇到size==n就返回

232,
★ 发自iPhone App: ChineseWeb 7.8
★ 发自iPhone App: ChineseWeb 7.8

【在 l*****n 的大作中提到】
: 前几天面了ebay,请教一个题
: 给 1 输出 1
: 给 2 输出 11,12,21,22(4个数)
: 给 3 输出 111,112,113,121,122,123,132,133,211,212,213,221,222,223,231,232,
: 233,311,312,313,321,322,323,331,332,333 (27个数)
: 给 n 输出所有可能
: dfs?NP?怎么做好一些啊

avatar
h*d
3
c++代码
void dfs(vector &path, int n)
{
if(path.size()==n)
{
for(int i=0;i{
cout<}
cout<return;
}
for(int i=1;i<=n;i++)
{
path.push_back(i);
dfs(path,n);
path.pop_back();
}
}
int main()
{
vector path;
dfs(path,3);
}

232,

【在 l*****n 的大作中提到】
: 前几天面了ebay,请教一个题
: 给 1 输出 1
: 给 2 输出 11,12,21,22(4个数)
: 给 3 输出 111,112,113,121,122,123,132,133,211,212,213,221,222,223,231,232,
: 233,311,312,313,321,322,323,331,332,333 (27个数)
: 给 n 输出所有可能
: dfs?NP?怎么做好一些啊

avatar
l*n
4
多谢多谢 :)
avatar
A*c
5
int main() {
const int N = 3;
vector> res(1);
for (int i = 0; i < N; ++i) { //pos

vector> tmpRes;
for (int j = 1; j <= N; ++j) { //value

for (int k = 0; k < res.size(); ++k) { //curr content

vector vecCopy = res[k];
vecCopy.push_back(j);
tmpRes.emplace_back(vecCopy);
}
}
res = tmpRes;
}
// cout results
for (const auto &p : res) {
copy(p.begin(), p.end(), ostream_iterator(cout, " "));
cout << endl;
}
}

232,

【在 l*****n 的大作中提到】
: 前几天面了ebay,请教一个题
: 给 1 输出 1
: 给 2 输出 11,12,21,22(4个数)
: 给 3 输出 111,112,113,121,122,123,132,133,211,212,213,221,222,223,231,232,
: 233,311,312,313,321,322,323,331,332,333 (27个数)
: 给 n 输出所有可能
: dfs?NP?怎么做好一些啊

avatar
p*9
6
请问当n比较大的时候 会不会出现stack overflow的情况 如果这样 应该如何避免改进
呢?

【在 h**d 的大作中提到】
: c++代码
: void dfs(vector &path, int n)
: {
: if(path.size()==n)
: {
: for(int i=0;i: {
: cout<: }
: cout<
avatar
z*m
7
dfs(path, n-1) 不是n吧?

【在 h**d 的大作中提到】
: c++代码
: void dfs(vector &path, int n)
: {
: if(path.size()==n)
: {
: for(int i=0;i: {
: cout<: }
: cout<
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。