0
我正在尝试查找总和给定数字n
的平方整数的最小数目。与n相加的平方整数的最小数目 - 如何迭代执行?
我用递归函数解决了它,但我想迭代地完成它。
如何使用一些循环,而不是递归方法?
public static ArrayList<Integer> minLen(int n)
{
// base case of recursion
if (n == 0)
return new ArrayList<Integer>();
ArrayList<Integer> best = null;
int bestInt = -1;
for (int i = 1; i*i <= n; ++i)
{
// Check what happens if we use i^2 as part of our representation
ArrayList<Integer> guess = minLen(n - i*i);
System.out.println("i:"+i);
System.out.println("Guess"+guess);
// If we haven't selected a 'best' yet (best == null)
// or if our new guess is better than the current choice (guess.size() < best.size())
// update our choice of best
if (best == null || guess.size() < best.size())
{
best = guess;
System.out.println("best"+best);
bestInt = i;
System.out.println("bestInt"+bestInt);
}
}
best.add(bestInt);
System.out.println("bestInt"+bestInt);
System.out.println("best"+best);
return best;
}
感谢您的帮助。 – Ved 2015-04-01 09:47:39
我必须将列表更改为arraylist tats。 (类型不匹配)列表 numbers = new ArrayList <>(); ArrayList numbers = new ArrayList <>(); –
Ved
2015-04-01 09:48:42
@Ved它适用于我'List'。也许你的方法的返回类型是'ArrayList',然后 - 你应该改为'List'而不是。 –
amit
2015-04-01 09:54:25