Dada una matriz Arr[] de largura septentriónla tarea es contar el número de pares (i, j) tales que Arr[i] * arr[j] > 0 y 0 ≤ yo < j ≤ septentrión† Igualmente se da que el punto del arreglo puede ser cualquier inalterable positivo, incluido el cero, o puede ser un inalterable imagen.
Ejemplos:
Aporte: Arr[] = {1, -5, 0, 2, -7}
Salida: 2
Explicación: Aquí el producto de (1, 2) y (-5, -7) es longevo que 0.Aporte: Arr[] = {0, 1, 5, 9}
Salida: 3
Enfoque ingenuo: El enfoque sustancial es suscitar todos los pares posibles de la matriz y contar los pares que cumplen la condición dada.
Siga los pasos a continuación para implementar la idea:
- Utilice un caracolillo anidado para suscitar todos los pares.
- Compruebe si el producto del par es longevo que 0, luego aumente el contar†
- Devuelve el postrer recuento posteriormente de que se hayan generado todos los pares.
Siga los pasos a continuación para implementar el enfoque.
C++
|
Java
|
Python3
|
Complejidad del tiempo: EN2†
cuarto auxiliar: O(1)
Enfoque válido: El problema se puede resolver a partir de la futuro idea:
La multiplicación de dos números solo puede ser longevo que cero si los dos números son negativos o si los dos números son positivos. Y si un número es cero, no puede emparejarse con nadie para obtener un resultado longevo que cero.
Para implementar la idea, cuente los números positivos y los números negativos. Luego obtenga el número de pares usando la fórmula de combinatoria septentriónC2 es proponer (positivo*(positivo-1)/2 + imagen*(imagen*-1)/2 )† Siga los pasos a continuación para implementar la idea:
- Onda desde Yo = 0 a N-1†
- Cuente el número de números positivos y negativos en la matriz (digamos representados por positivo y imagen†
- Ahora calcule el número total de pares adecuado a la ocurrencia de positivo y el número total de pares adecuado a la ocurrencia de imagen usando la observación previo.
- Devuelve el número total de veces.
A continuación se muestra la implementación de la implementación previo:
C++
|
Java
|
Complejidad del tiempo: EN)
cuarto auxiliar: O(1)