由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 对自己DFS能力彻底的绝望了。
相关主题
关于排列组合的题目的算法发包子请教大牛:scramble string这题递归的复杂度
问一个题请教一道onsite面试题
用了递归以后,怎么计算空间复杂度?F家面经
分享一道Yelp电面题晕了,有人用iteration解n queens么
有重复元素的全排列,递归算法8 queens问题最好解法是什么?时间复杂度?
生成一个有重复数的全排列,怎么做比较好面试时 迭代还是递归
经典递归题需要搞懂非递归算法吗?一道amazon题
generate parenthesis这题有没有iterative解法啊?一道面试题和解法(求指点).
相关话题的讨论汇总
话题: dfs话题: loop话题: next话题: string
进入JobHunting版参与讨论
1 (共1页)
p*****2
发帖数: 21240
1
碰到一道题
A[0]
A[1]
A[2]
A[3]
每个元素是一个1-9的字符。基本的意思是让求所有的组合
比如
A[0]='0'
A[1]='1'
A[2]='2'
A[3]='3'
那么打印
0123
0213
0321

题目的要求稍微多点。先解释了怎么处理那些要求,没敢用最优,只用了最naive的。
然后表示认可,问到关键是你怎么求所有的组合呢?结果我又犯傻了,还以为在论坛上
,得意洋洋的回答了三个字
DFS
然后就被鄙视了。说你这个算法也太复杂了吧?当时对自己感到彻底的绝望了。自己最
拿手的也被鄙视了。哎。
y**********u
发帖数: 6366
2
您这是递归,不是dfs。。。

【在 p*****2 的大作中提到】
: 碰到一道题
: A[0]
: A[1]
: A[2]
: A[3]
: 每个元素是一个1-9的字符。基本的意思是让求所有的组合
: 比如
: A[0]='0'
: A[1]='1'
: A[2]='2'

B*******1
发帖数: 2454
3
string str("3102")
sort(str.begin(), str.end());
do {
cout << str << endl;
} while (next_permutation(str.begin(), str.end());

【在 p*****2 的大作中提到】
: 碰到一道题
: A[0]
: A[1]
: A[2]
: A[3]
: 每个元素是一个1-9的字符。基本的意思是让求所有的组合
: 比如
: A[0]='0'
: A[1]='1'
: A[2]='2'

p*****2
发帖数: 21240
4

还真是呀。概念错误呀。该死。

【在 y**********u 的大作中提到】
: 您这是递归,不是dfs。。。
g***s
发帖数: 3811
5
组合?
那不就只有一个?:)
应该是排列吧。参考next_permutation()in stl.

【在 p*****2 的大作中提到】
: 碰到一道题
: A[0]
: A[1]
: A[2]
: A[3]
: 每个元素是一个1-9的字符。基本的意思是让求所有的组合
: 比如
: A[0]='0'
: A[1]='1'
: A[2]='2'

y**********u
发帖数: 6366
6
赞,用字典序法
grass大牛真是偶像啊

【在 g***s 的大作中提到】
: 组合?
: 那不就只有一个?:)
: 应该是排列吧。参考next_permutation()in stl.

t**********h
发帖数: 2273
7
进来膜拜大牛们,我擦,牛逼
b*****7
发帖数: 631
8
我咋觉得递归本身就是一种DFS啊。
面试官水平不行。

【在 p*****2 的大作中提到】
:
: 还真是呀。概念错误呀。该死。

w****x
发帖数: 2483
9
递归, 不是150上有这题吗
p*****2
发帖数: 21240
10
没想到这个帖子一开。进来六个大牛。真是壮观呀。
相关主题
生成一个有重复数的全排列,怎么做比较好发包子请教大牛:scramble string这题递归的复杂度
经典递归题需要搞懂非递归算法吗?请教一道onsite面试题
generate parenthesis这题有没有iterative解法啊?F家面经
进入JobHunting版参与讨论
p*****2
发帖数: 21240
11

我后来想了想,其实这个可以画出来一棵树的,说DFS也不算过分。

【在 b*****7 的大作中提到】
: 我咋觉得递归本身就是一种DFS啊。
: 面试官水平不行。

p*****2
发帖数: 21240
12

汗。一直概念就不清除。排列组合总是一起说。多谢大神指正。不过next permutation
我上周研究过一下,算法比DFS更复杂多了呀。

【在 g***s 的大作中提到】
: 组合?
: 那不就只有一个?:)
: 应该是排列吧。参考next_permutation()in stl.

p*****2
发帖数: 21240
13

其实这题他想要的解是iteration的,后来告诉我了,人挺nice的,其实我很喜欢他,
能够告诉我他想要的答案。
答案果然非常简洁,我是无论如何也想不到的。哎。

【在 w****x 的大作中提到】
: 递归, 不是150上有这题吗
A******o
发帖数: 231
14
zan

【在 B*******1 的大作中提到】
: string str("3102")
: sort(str.begin(), str.end());
: do {
: cout << str << endl;
: } while (next_permutation(str.begin(), str.end());

H****r
发帖数: 2801
15
求简洁iteration解,只会个递归的...

【在 p*****2 的大作中提到】
:
: 其实这题他想要的解是iteration的,后来告诉我了,人挺nice的,其实我很喜欢他,
: 能够告诉我他想要的答案。
: 答案果然非常简洁,我是无论如何也想不到的。哎。

p*****2
发帖数: 21240
16

答案是
四个for loop可解。

【在 H****r 的大作中提到】
: 求简洁iteration解,只会个递归的...
H****r
发帖数: 2801
17
不会说的是只有4个元素的情况吧?

【在 p*****2 的大作中提到】
:
: 答案是
: 四个for loop可解。

p*****2
发帖数: 21240
18

确实是。我根本就没想到这点。你说我多点背?

【在 H****r 的大作中提到】
: 不会说的是只有4个元素的情况吧?
H****r
发帖数: 2801
19
无语了

【在 p*****2 的大作中提到】
:
: 确实是。我根本就没想到这点。你说我多点背?

r********g
发帖数: 1351
20
这题考点。。难道是看会不会用for loop。。

【在 H****r 的大作中提到】
: 无语了
相关主题
晕了,有人用iteration解n queens么一道amazon题
8 queens问题最好解法是什么?时间复杂度?一道面试题和解法(求指点).
面试时 迭代还是递归抽空简单说一下昨天的Google Phone Interview
进入JobHunting版参与讨论
p*****2
发帖数: 21240
21

考communication吧。人家就给了你4个元素,你assume成不同数目的就去做,一看就是
communication不行呀。哪个公司愿意要呢?

【在 r********g 的大作中提到】
: 这题考点。。难道是看会不会用for loop。。
r********g
发帖数: 1351
22
嗯,以后coding谨记要问函数接口, 然后每个参数的可能范围

【在 p*****2 的大作中提到】
:
: 考communication吧。人家就给了你4个元素,你assume成不同数目的就去做,一看就是
: communication不行呀。哪个公司愿意要呢?

b*****7
发帖数: 631
23
狗血啊。。果然够简洁。。。
我还在笔画用stack来实现。。。

【在 p*****2 的大作中提到】
:
: 考communication吧。人家就给了你4个元素,你assume成不同数目的就去做,一看就是
: communication不行呀。哪个公司愿意要呢?

g***s
发帖数: 3811
24
但复杂度比dfs底。这题如果就4个元素,如果不让直接用next_permutation的话,for
loop是更简单。:)

permutation
★ 发自iPhone App: ChineseWeb - 中文网站浏览器

【在 p*****2 的大作中提到】
:
: 考communication吧。人家就给了你4个元素,你assume成不同数目的就去做,一看就是
: communication不行呀。哪个公司愿意要呢?

p*****2
发帖数: 21240
25

for
大神就是不一样呀。
关于复杂度,如果DFS的话是O(N!)复杂度。
如果next_permutation的话,我怎么感觉是N*N!呢?
算一次要N吧,一共有N!个吧。你看看哪里没算对呀。

【在 g***s 的大作中提到】
: 但复杂度比dfs底。这题如果就4个元素,如果不让直接用next_permutation的话,for
: loop是更简单。:)
:
: permutation
: ★ 发自iPhone App: ChineseWeb - 中文网站浏览器

p*****2
发帖数: 21240
26

可以用个HashSet吧?
p*****2
发帖数: 21240
27

做了一下next_permutation, 上周看过一次,结果刚才做起来还是很费劲呀。作没做过
真是不一样呀。

【在 g***s 的大作中提到】
: 组合?
: 那不就只有一个?:)
: 应该是排列吧。参考next_permutation()in stl.

w****f
发帖数: 684
28
好像3 loop 吧,4th loop only one choose.
String s = "asdf";
int l= 6- i -j -k;
cout< }}}}
g***s
发帖数: 3811
29
对无重复元素,一般我们都认为n*n!
除非你算出来的排列根本不用。
对有重复,用字典序求排列有优势。

【在 p*****2 的大作中提到】
:
: 做了一下next_permutation, 上周看过一次,结果刚才做起来还是很费劲呀。作没做过
: 真是不一样呀。

v****c
发帖数: 29
30
next_permutation 的amortized cost 是 O(1)

【在 g***s 的大作中提到】
: 对无重复元素,一般我们都认为n*n!
: 除非你算出来的排列根本不用。
: 对有重复,用字典序求排列有优势。

相关主题
如何写内存速度最优化的string permutation?有重复字符问一个题
T家电面面经并且不解为何被秒拒用了递归以后,怎么计算空间复杂度?
关于排列组合的题目的算法分享一道Yelp电面题
进入JobHunting版参与讨论
g***s
发帖数: 3811
31
谢谢指出。:)
我主要想说的是,算出来的排列,只要每个都用,复杂度就变成了O(N*N!)。
现在想一下,也可能有些根据某些位的判断也可能就直接过滤掉,而不需要N。比方说
猜数字游戏。告诉你第3和第4的数字和是9。

【在 v****c 的大作中提到】
: next_permutation 的amortized cost 是 O(1)
1 (共1页)
进入JobHunting版参与讨论
相关主题
一道面试题和解法(求指点).有重复元素的全排列,递归算法
抽空简单说一下昨天的Google Phone Interview生成一个有重复数的全排列,怎么做比较好
如何写内存速度最优化的string permutation?有重复字符经典递归题需要搞懂非递归算法吗?
T家电面面经并且不解为何被秒拒generate parenthesis这题有没有iterative解法啊?
关于排列组合的题目的算法发包子请教大牛:scramble string这题递归的复杂度
问一个题请教一道onsite面试题
用了递归以后,怎么计算空间复杂度?F家面经
分享一道Yelp电面题晕了,有人用iteration解n queens么
相关话题的讨论汇总
话题: dfs话题: loop话题: next话题: string