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];
Так что я немного смущен тем, что делают массивы. Первая строка инициализирует 2D-массив с n столбцами. Первый для циклов смотрит на каждый столбец. Если это четный столбец, он поместит n в первую строку этого столбца. Теперь я немного смущен этим, потому что на него ссылаются только с одной скобкой, хотя это должен быть 2D-массив. То же самое с двойным циклом. В чем разница между A.length и A [i] .length? Из того, что я понимаю, двойные для циклов повторяются через массив и получают сумму всех элементов. Может кто-то прояснить это, потому что я немного потерял синтаксис.Помогите расшифровать этот код и его время выполнения
Кроме того, мой инстинкт говорит, что этот код работает в O (n^2) раз, по крайней мере, из-за двойных циклов. Правильно ли это?
Вы должны пометить это на том языке, на котором оно написано. – 2010-12-08 03:46:12