Воспользоваться симметрией, наверно, не получится — накладные расходы на доступ к произвольным элементам съедают все.
Вариант Throwable хорош, но до него додумался оптимизатор — работает он ровно так же, как первоначальный код.
Удивительно, но такой вариант работает немного быстрее:
for(int i = 0; i < n; i++) {
g[0][i] = i;
}
for(int i = 1; i < n; i++) {
for(int j = 0; j < n; j++) {
g[i][j] = g[i-1][j]+1;
}
}
Предствим себе ситуацию когда человек зашел по ссылке но не авторизовался по какой либо причине. Или у него нет аккаунта в QIWI и ему понадобится определенное кол-во времени чтобы его завести, а Яндекс.Бар уже благополучно послал вашу ссылку на индексацию. В общем есть над чем подумать.
Вариант Throwable хорош, но до него додумался оптимизатор — работает он ровно так же, как первоначальный код.
Удивительно, но такой вариант работает немного быстрее:
Возможно, из-за первой строки?