LeetCode 1035. Resumen de líneas disjuntas

tema

Escribimos los números enteros en A y B en el orden dado en dos líneas horizontales separadas.

Ahora, podemos dibujar algunas líneas rectas que conectan dos números A [i] y B [j], siempre que A [i] == B [j], y la línea recta que dibujamos no se cruza con ninguna otra línea de conexión ( líneas no horizontales).

Dibuja líneas de esta manera y devuelve el número máximo de líneas que podemos dibujar.

Ejemplo 1:

Inserte la descripción de la imagen aquí

Entrada: A = [1,4,2], B = [1,2,4]
Salida: 2
Explicación:
Podemos dibujar dos líneas que no se crucen, como se muestra en la figura anterior.
No podemos dibujar la tercera línea disjunta porque la línea de A [1] = 4 a B [2] = 4 intersecará la línea de A [2] = 2 a B [1] = 2.
Ejemplo 2:

Entrada: A = [2,5,1,2,5], B = [10,5,2,1,5,2]
Salida: 3
Ejemplo 3:

Entrada: A = [1,3,7,1,7,5], B = [1,9,2,5,1]
Salida: 2

inmediato:

1 <= A. longitud <= 500
1 <= B. longitud <= 500
1 <= A [i], B [i] <= 2000

Ideas y algoritmos para la resolución de problemas

Utilice la programación dinámica
La esencia de este problema es encontrar la subsecuencia común más larga de dos matrices

  • Determine el significado de la matriz dp: dp [i] [j] representa la subsecuencia común más larga de A [0, i-1], B [0, j-1]
  • Inicialización de la matriz dp, dp [i] [0] = 0, dp [0] [j] = 0
  • Determinar el orden transversalInserte la descripción de la imagen aquí
  • Hay tres direcciones para derivar dp [i] [j], así que recorre de adelante hacia atrás y de arriba hacia abajo

Código

class Solution {
    
    
    public int maxUncrossedLines(int[] A, int[] B) {
    
    
		int [][] dp = new int[A.length+1][B.length+1];
		for(int i=1;i<=A.length;i++) {
    
    
			for(int j=1;j<=B.length;j++) {
    
    
				if (A[i-1]==B[j-1]) {
    
    
					dp[i][j]=dp[i-1][j-1]+1;
				}
				else {
    
    
					dp[i][j]=Math.max(dp[i-1][j], dp[i][j-1]);
				}
			}
		}
		return dp[A.length][B.length];
	}
}

Supongo que te gusta

Origin blog.csdn.net/a12355556/article/details/115248241
Recomendado
Clasificación