元のarraylistに元の要素を追加しようとしています。例えば[1,2,3]は[1,1,2,4,3,9]になるはずです。私の問題は、メモリ不足のエラーが発生しているため、マシンがひどい場合にはわかりません。ここに私の試みです。再帰呼び出しは、arraylistの合計を取得するだけです。ArraylistにArraylistの四角形要素を追加する
public static int sumOfSquares(List<Integer> num) {
if (num.isEmpty()) {
return 0;
}
for(int i=0; i<num.size();i++){
int hold= num.get(i)*num.get(i);
num.add(hold);
}
return num.get(0) + sumOfSquares(num.subList(1, num.size()));
}
あなたの 'for'ループは' num'に追加するので無限ループです。これは 'size()'を増やしてループを終わらせないようにします。 – 4castle
はそれぞれのループにとってより良いでしょうか? –
あなたはおそらくそれを行うべきではありません。なぜ正方形の合計を得るためにリストを突然変異させるのですか?それが必要な場合は、手順を分けてください。 – ChiefTwoPencils