avatar
请教一道面试题# JobHunting - 待字闺中
I*7
1
combination product
给一个质数数组,返回所有可能的product,顺序不管
比如给 [2,3,5] 返回 [2,3,5,6,10,15,30]
数组中的数如果有重复则需要去重,不允许用set。
比如给 [2,2,2] 返回 [2,4,8],顺序不用管
感觉和leetcode上面的题目很像,但是感觉解法好像不能照搬。。。
avatar
b*5
2
难道不是DFS么?
for (int i= startIdx; i < N; i++) {
DFS(startIdx+1, product*A[i]...
}
if there's duplicates,
for (int i= startIdx; i < N; i++) {
if (i > startIdx && A[i] == A[i-1]) continue;
DFS(startIdx+1, product*A[i]...
}

【在 I*********7 的大作中提到】
: combination product
: 给一个质数数组,返回所有可能的product,顺序不管
: 比如给 [2,3,5] 返回 [2,3,5,6,10,15,30]
: 数组中的数如果有重复则需要去重,不允许用set。
: 比如给 [2,2,2] 返回 [2,4,8],顺序不用管
: 感觉和leetcode上面的题目很像,但是感觉解法好像不能照搬。。。

avatar
I*7
4

谢谢回复啊。
这个好像不对啊。我知道这个是leetcode那题的解法。
要是数组是 [2,2,2] 这个解法只会返回 8。

【在 b**********5 的大作中提到】
: 难道不是DFS么?
: for (int i= startIdx; i < N; i++) {
: DFS(startIdx+1, product*A[i]...
: }
: if there's duplicates,
: for (int i= startIdx; i < N; i++) {
: if (i > startIdx && A[i] == A[i-1]) continue;
: DFS(startIdx+1, product*A[i]...
: }

avatar
b*5
5
我只是没写全而已
DFS ( 。。。) {
if (0result.add(product);
}
for (int i = startIdx ....)

【在 I*********7 的大作中提到】
:
: 谢谢回复啊。
: 这个好像不对啊。我知道这个是leetcode那题的解法。
: 要是数组是 [2,2,2] 这个解法只会返回 8。

avatar
I*7
6

谢谢,懂了。这提确实是subsets II那题。

【在 b**********5 的大作中提到】
: 我只是没写全而已
: DFS ( 。。。) {
: if (0: result.add(product);
: }
: for (int i = startIdx ....)

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。