Проверьте, есть ли всегда одно и то же значение в строке массива для каждой строки C ++ - PullRequest
0 голосов
/ 07 мая 2018

Я ищу алгоритм или код, способный просматривать 2D-массив (матрицу) и проверять, есть ли у нас значения разностей для каждой строки или нет. Если значения отличаются, мы возвращаем 1, иначе 0

пример лучше:

    0   1   2   3
0       2
1           2   4
2               6
3   1

в случае 0; 2 мы имеем значение 2 в случае 2; 3 мы имеем значение 6

В этом примере для строки 1 у нас есть 2 значения (в 1; 2 и 1; 3): 2 и 4. 2 и 4 не равны, мы можем выйти из цикла и вернуть 1

    0   1   2   3
0       2   2
1           1   1
2               6
3   4

В этом другом примере, в первой строке все значения равны 2, поэтому мы переходим ко второй строке, все значения равны 1, мы переходим в третью строку, все значения равны 6, и последняя строка, все значения равны 4, поэтому мы возвращаем 0

Я действительно не знаю, как я могу это сделать

Заранее благодарим за помощь

С наилучшими пожеланиями

1 Ответ

0 голосов
/ 07 мая 2018

Попробуйте это, которое имеет временную сложность решения O (N * M)

    //N = Number of rows
    //M = Number of cols
    //arr is the 2D array

   for (int i = 0; i < N; i++) {
        int curr = 0;
        for (int j = 0; j < M; j++) {
            if (arr[i][j] != 0) {
                if (curr == 0) {
                    curr = arr[i][j];
                } else if (arr[i][j] != curr) {
                    //This row has different values
                    return 1;
                }
            }
        }
    }
    return 0; //All rows have the same value
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...