Вот ситуация, я должен привести из int в long и обратно в int из long. Мне интересно, могу ли я избежать этого приведения.
long temp = (long) i + nums[i]; // i + nums[i] could be bigger than Integer.MAX_VALUE
// i and nums[] both are int type.
int row = (int) (temp % 2);
int col = (int) (temp / 2);
Где row
и col
будут использоваться для доступа к массиву позже.
Одно изменение, которое я мог бы сделать для *Оператор 1008 *,
int row = (i%2 + nums[i]%2) % 2;
Но у меня нет какой-либо эффективной по времени реализации для замены оператора col
, чтобы я мог избежать длительного приведения первого оператора.