【发布时间】:2019-06-14 06:49:47
【问题描述】:
我正在尝试使用 for loop 以动态方式添加所有组合的数组列表值。例如,在数组中添加两个元素组合可以通过嵌套循环来完成。类似地,3、4、5、6、7、8 之类的组合加法需要动态循环生成。我能做什么?
static int birthday(List<Integer> s, int d, int m) {
int l=s.size();
int count=0;
int a[]=new int[l];
for (int x=0; x<l; x++){
a[x]=s.get(x);
}
if(m==2){
for (int i=0; i<l; i++){
for (int j=i+1; i<l; i++){
if(a[i]+a[j]==d){
count++;
}
}
}
}
else if(m==1){
count++;
}
return count;
}
以上代码适用于 1 和 2 组合以及所有 3,4,...10。我想生成动态for loop。请给出解决方案。
【问题讨论】:
-
考虑另一种方法。动态嵌套循环会减慢您的代码速度。想想动态创建的 300 个嵌套循环。您的代码复杂度为
O(n^300) -
您可以使用数学计算来解决这个问题。但是,如果您必须需要动态循环,请尝试递归。
标签: java nested-loops