1252. El número de celdas con valores impares (C ++)
1 descripción del tema
Dada una matriz de n filas ym columnas, al principio, el valor en cada celda es 0.
También hay una matriz de índices, donde ri y ci en los índices [i] = [ri, ci] representan la fila y columna especificadas (numeración comenzando desde 0).
Debe agregar 1 al valor de todas las celdas en la fila y columna especificadas por cada par de [ri, ci].
Devuelva el número de "celdas con valores impares" en la matriz después de realizar todas las operaciones de incremento especificadas por los indicadores.
2 Descripción de ejemplo
2.1 Ejemplo 1
Entrada: n = 2, m = 3, índices = [[0,1], [1,1]]
Salida: 6
Explicación: La primera matriz es [[0,0,0], [0,0, 0]].
Después de la primera operación de incremento, se obtiene [[1,2,1], [0,1,0]].
La matriz final es [[1,3,1], [1,3,1]], con 6 números impares en ella.
2.2 Ejemplo 2
Entrada: n = 2, m = 2, índices = [[1,1], [0,0]]
Salida: 0
Explicación: La matriz final es [[2,2], [2,2]], no hay un número impar.
3 consejos para resolver problemas
1 <= n <= 50
1 <= m <= 50
1 <= índices.longitud <= 100
0 <= índices [i] [0] <n
0 <= índices [i] [1] <m
4 Código fuente detallado (C ++)
class Solution {
public:
vector<vector<int>> res;
int oddCells(int n, int m, vector<vector<int>>& indices) {
int count = 0 ;
res = vector<vector<int>>(n,vector<int>(m,0));
for ( auto x : indices )
{
for ( int i = 0 ; i < n ; i ++ )
{
res[i][x[1]] ++ ;
}
for ( int j = 0 ; j < m ; j ++ )
{
res[x[0]][j] ++ ;
}
}
for ( int i = 0 ; i < n ; i ++ )
{
for ( int j = 0 ; j < m ; j ++ )
{
if ( res[i][j] % 2 == 1 )
{
count ++ ;
}
}
}
return count ;
}
};