私は可能なすべての値の合計を含む2次元配列を生成するアルゴリズムを持っています。たとえば、配列[1,5,8,4,5]
の場合、2D配列sums[1][3]
は、元の配列(17)のインデックス1-3の合計を返す必要があります。大きなOに関して、効率はO(N )と考えています。このアルゴリズムをより効率的にする方法はありますか?このアルゴリズムをより効率的にするにはどうすればよいですか?
public static int[][] sum(int[] values){
int[][] sums = new int[values.length][values.length];
for(int x = 0; x < values.length; x++){
int total = 0;
for(int y = x; y < values.length; y++) {
total += values[y];
sums[x][y] = total;
}
}
return sums;
}
'N^2'サイズの表を入力する必要があります。あなたは 'O(N^2)未満でこれをどうやってやることができますか? ' –
似たような質問です。 O(nlog(n))で行うことができます。 http://stackoverflow.com/a/37907843/3160529 – Shubham
これはまさに私が不思議に思っていたものです。私の講義スライドの質問です。私はそれを理解しようとしています。 –