Я прошел через упражнение в испытании Hakerrank, где я использовал базовый цикл for для итерации над массивом, тогда я подумал об увеличении счетчика цикла в зависимости от условия. Вот мое решение:

public static int sockMerchant(int n, int[] ar) {
    int pairs = 0;
    Arrays.sort(ar);
    if (n % 2 != 0) n = n - 1;
    for (int i = 0; i < n - 1; i++) {
        if (ar[i] == ar[i + 1]) {
            ++pairs;
            // incrementing the loop counter
            i++;
        }
    }
    return pairs;
}

Мне интересно, есть ли случаи или проблемы при увеличении счетчика цикла. Есть идеи, ребята, о чем нужно быть осторожным с написанным кодом?

1
Hassam Abdelillah 26 Июл 2020 в 12:29

1 ответ

Лучший ответ

Не все языки программирования позволяют изменять индекс цикла. В этом случае используйте любой метод, подходящий или идиоматический для этого языка.

Но Java позволяет изменять индекс цикла.

Ознакомьтесь с подробным ответом Грега Хьюгилла.

https://stackoverflow.com/a/9012318/13651978

1
Yash Shah 26 Июл 2020 в 09:38