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