모든 가능한 값의 합계를 포함하는 2D 배열을 생성하는 알고리즘이 있습니다. 예를 들어, 배열 [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
그게 바로 내가 궁금해 한 것입니다. 강의 슬라이드의 질문이며 그것을 이해하려고 노력했습니다. –