I*********7 发帖数: 125 | 1 combination product
给一个质数数组,返回所有可能的product,顺序不管
比如给 [2,3,5] 返回 [2,3,5,6,10,15,30]
数组中的数如果有重复则需要去重,不允许用set。
比如给 [2,2,2] 返回 [2,4,8],顺序不用管
感觉和leetcode上面的题目很像,但是感觉解法好像不能照搬。。。 | b**********5 发帖数: 7881 | 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上面的题目很像,但是感觉解法好像不能照搬。。。
| j**7 发帖数: 143 | | I*********7 发帖数: 125 | 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]... : }
| b**********5 发帖数: 7881 | 5 我只是没写全而已
DFS ( 。。。) {
if (0
result.add(product);
}
for (int i = startIdx ....)
【在 I*********7 的大作中提到】 : : 谢谢回复啊。 : 这个好像不对啊。我知道这个是leetcode那题的解法。 : 要是数组是 [2,2,2] 这个解法只会返回 8。
| I*********7 发帖数: 125 | 6
谢谢,懂了。这提确实是subsets II那题。
【在 b**********5 的大作中提到】 : 我只是没写全而已 : DFS ( 。。。) { : if (0: result.add(product); : } : for (int i = startIdx ....)
|
|