int[][] A = new int [n][];
for (int i=0; i<n; i++) {
if (i % 2 == 0) // i is a multiple of 2
A[i] = new int [n];
else
A[i] = new int [1];
}
for (int i=0; i<A.length; i++)
for (int j=0; j<A[i].length; j++)
sum = sum + A[i][j];
So bin ich ein bisschen verwirrt darüber, was die Arrays tun. Die erste Zeile initialisiert ein 2D-Array mit n Spalten. Die erste for-Schleife betrachtet jede Spalte. Wenn es eine gerade Spalte ist, wird n in die erste Zeile dieser Spalte geschrieben. Jetzt bin ich ein bisschen verwirrt, weil es mit nur einer Klammer referenziert wird, obwohl es ein 2D-Array sein sollte. Das gleiche gilt für die doppelten for-Schleifen. Was ist der Unterschied zwischen A.length und A [i] .length? Soweit ich weiß, durchlaufen die doppelten for-Schleifen das Array und erhalten die Summe aller Elemente. Kann jemand das klären, weil ich ein bisschen in der Syntax verloren bin.Hilfe entziffern diesen Code und es ist Laufzeit
Auch mein Instinkt sagt, dass dieser Code zumindest wegen der doppelten for-Schleifen in O (n^2) -Zeit läuft. Scheint das richtig?
Sie sollten dies mit der Sprache versehen, in der es geschrieben ist. –