s*g
2 楼
printFactors(int n)
input:32
output:
1 * 32
2 * 16
2 * 2 * 8
2 * 2 * 2 * 4
2 * 2 * 2 * 2 * 2
2 * 4 * 4
4 * 8
没有思路啊。
只能想到先找出所有的factor。 大牛们能给点思路吗?谢谢
input:32
output:
1 * 32
2 * 16
2 * 2 * 8
2 * 2 * 2 * 4
2 * 2 * 2 * 2 * 2
2 * 4 * 4
4 * 8
没有思路啊。
只能想到先找出所有的factor。 大牛们能给点思路吗?谢谢
l*a
4 楼
List
- > func(int n) {
List
- > result= new ArrayList
- >();
List
get(n,2,cur,result);
return result;
}
public get(int target,int start,List
- > result
) {
if(target==1) {
result.add(new ArrayList
return;
}
for(int i=start;i<=target/2;i++) {
if(target%i==0) {
cur.add(i);
get(target/i,i,cur,result);
cur.remove(cur.size()-1);
}
}
}
注意,没考虑第一个1*32,你单独写进去好了
【在 s***g 的大作中提到】
![](/moin_static193/solenoid/img/up.png)
: printFactors(int n)
: input:32
: output:
: 1 * 32
: 2 * 16
: 2 * 2 * 8
: 2 * 2 * 2 * 4
: 2 * 2 * 2 * 2 * 2
: 2 * 4 * 4
: 4 * 8
m*a
7 楼
还是辣娃好, 美女挺胸而出, 就好了。
p*p
8 楼
需要memorization,不然复杂度似乎是O(n!)级的(不是很确定这个怎么算)
result
【在 l*****a 的大作中提到】![](/moin_static193/solenoid/img/up.png)
: List
result
【在 l*****a 的大作中提到】
![](/moin_static193/solenoid/img/up.png)
: List
- > func(int n) {
: List
- > result= new ArrayList
- >();
: List
: get(n,2,cur,result);
: return result;
: }
: public get(int target,int start,List
- > result
: ) {
: if(target==1) {
: result.add(new ArrayList
h*d
11 楼
p*p
12 楼
暴力递归解法:
public List
public List
- > printFactors(int n) {
List
- > result = new ArrayList
- >();
if(n <= 0) {
return result;
}
List
printFactorsHelper(n, trace, result);
return result;
}
private void printFactorsHelper(int n, List
List
if(list.isEmpty()) {
list.add(1);
}
list.add(n);
result.add(list);
for(int i = trace.isEmpty() ? 2 : trace.get(trace.size()-1); i <= n/
i; i++) {
if(n % i == 0) {
trace.add(i);
printFactorsHelper(n/i, trace, result);
trace.remove(trace.size()-1);
}
}
}
h*d
13 楼
c++的
void findfactor(int n, int target,int start, vector > &result,
vector &group)
{
if(target == 1)
{
if(group.size()==1)
{
group.insert(group.begin(),1);
}
result.push_back(group);
return;
}
for(int i= start;i<=target;i++)
{
if(target%i==0)
{
group.push_back(i);
findfactor(n, target/i, i, result, group);
group.pop_back();
}
}
}
【在 s***g 的大作中提到】![](/moin_static193/solenoid/img/up.png)
: printFactors(int n)
: input:32
: output:
: 1 * 32
: 2 * 16
: 2 * 2 * 8
: 2 * 2 * 2 * 4
: 2 * 2 * 2 * 2 * 2
: 2 * 4 * 4
: 4 * 8
void findfactor(int n, int target,int start, vector
vector
{
if(target == 1)
{
if(group.size()==1)
{
group.insert(group.begin(),1);
}
result.push_back(group);
return;
}
for(int i= start;i<=target;i++)
{
if(target%i==0)
{
group.push_back(i);
findfactor(n, target/i, i, result, group);
group.pop_back();
}
}
}
【在 s***g 的大作中提到】
![](/moin_static193/solenoid/img/up.png)
: printFactors(int n)
: input:32
: output:
: 1 * 32
: 2 * 16
: 2 * 2 * 8
: 2 * 2 * 2 * 4
: 2 * 2 * 2 * 2 * 2
: 2 * 4 * 4
: 4 * 8
f*0
14 楼
函数参数有了target还要n干嘛?
另外这应该是指数级复杂度的吧?
void recur(int n, int m, vector > &results, vector &result)
{
//if (m > n) return;
if (n == 1) {
results.push_back(result);
return;
}
for (int i = m; i <= n; ++i) {
if (n%i == 0) {
result.push_back(i);
recur(n/i, i, results, result);
result.pop_back();
}
}
}
vector > printFactors(int n) {
vector > results = {{1,32}};
recur(n, 2, results, result);
return results;
}
【在 h**d 的大作中提到】![](/moin_static193/solenoid/img/up.png)
: c++的
: void findfactor(int n, int target,int start, vector > &result,
: vector &group)
: {
: if(target == 1)
: {
: if(group.size()==1)
: {
: group.insert(group.begin(),1);
: }
另外这应该是指数级复杂度的吧?
void recur(int n, int m, vector
{
//if (m > n) return;
if (n == 1) {
results.push_back(result);
return;
}
for (int i = m; i <= n; ++i) {
if (n%i == 0) {
result.push_back(i);
recur(n/i, i, results, result);
result.pop_back();
}
}
}
vector
vector
recur(n, 2, results, result);
return results;
}
【在 h**d 的大作中提到】
![](/moin_static193/solenoid/img/up.png)
: c++的
: void findfactor(int n, int target,int start, vector
: vector
: {
: if(target == 1)
: {
: if(group.size()==1)
: {
: group.insert(group.begin(),1);
: }
相关阅读
offer里面能否和公司谈temination notice期限?找工作。求经验。感谢!!heap sort的缺点是什么?和quick sort比Looking for .NET developer (Chicago, Sponsor H1B )我已经签了offer,但OPT要等很久,公司会不会反悔?CGG电面2Java 有类似 leetcode那样子的网站吗?有没有chegg的, 帮个忙真心求评估~~~~国内 CS PHD,明年8月毕业,能否明年1月过来找工作H1B cap gap阶段跳槽疑问求西雅图软件公司推荐找个出个unpaid offer的。需要ITU CPT学校h1b转公司h1b的问题Offer 快来了求bless大家看看,我是不是被婉拒了?leetcode每道题后面的两个数十什么意思呢?有什么用呢?dream company在做reference check, 但另一个offer的deadline马上就要到了有谁有过press 的scientific editor面试吗?跪求选择:EECS phd vs 工作老印非法占中国绿卡名额, 大家去签名请愿. (转载)