Encuentre la solución Town Judge LeetCode

Planteamiento del problema: encuentre el código Leetcode del juez de la ciudad Solución: en una ciudad, hay n personas etiquetadas del 1 al n. Corre el rumor de que una de estas personas es en secreto el juez del pueblo. Si el juez del pueblo existe, entonces: El juez del pueblo no confía en nadie. Todos (excepto el juez del pueblo) confían en el juez del pueblo. …

Lea más

Recorrido de orden vertical de árbol binario Solución LeetCode

Declaración del problema Recorrido de orden vertical del árbol binario La solución de LeetCode dice: Dada la raíz de un árbol binario, calcule el recorrido de orden vertical del árbol binario. Para cada nodo en la posición (fila, columna), sus hijos izquierdo y derecho estarán en las posiciones (fila + 1, columna - 1) y (fila + 1, columna + 1) respectivamente. …

Lea más

Solución LeetCode de los elementos más frecuentes de K

Declaración del problema Top K Elementos frecuentes Solución de LeetCode Dice que – Dada una matriz de enteros nums y un entero k, devolver los k elementos más frecuentes. Puede devolver la respuesta en cualquier orden. Ejemplo 1: Entrada: nums = [1,1,1,2,2,3], k = 2 Salida: [1,2] Ejemplo 2: Entrada: nums = [1], k = 1 Salida: [1] …

Lea más

Solución LeetCode de subarreglo continuo sin clasificar más corto

Declaración del problema El subarreglo continuo sin ordenar más corto La solución de LeetCode dice que: dada una matriz de números enteros, debe encontrar un subarreglo continuo que, si solo ordena este subarreglo en orden ascendente, entonces todo el arreglo se ordenará en orden ascendente. Devuelve la longitud del subarreglo más corto. Ejemplo 1: …

Lea más

Sumar números de raíz a hoja Solución LeetCode

Declaración del problema Suma de la raíz a los números de hoja La solución de LeetCode dice: se le da la raíz de un árbol binario que contiene dígitos del 0 al 9 únicamente. Cada ruta de raíz a hoja en el árbol representa un número. Por ejemplo, la ruta de raíz a hoja 1 -> 2 -> 3 representa el número 123. Devuelve la suma total de todos los números de raíz a hoja. Prueba …

Lea más

Puntuación de Paréntesis Solución LeetCode

Declaración del problema La puntuación de la solución LeetCode de paréntesis dice: dada una cadena de paréntesis equilibrada s y devolver la puntuación máxima. La puntuación de una cadena de paréntesis equilibrada se basa en las siguientes reglas: “()” tiene una puntuación de 1. AB tiene una puntuación A + B, donde A y B son cadenas de paréntesis equilibradas. (A) tiene una puntuación de 2 * A, donde A es un...

Lea más

Solución LeetCode de superposición de rectángulos

Declaración del problema: Rectángulo superpuesto Solución LeetCode: dice que un rectángulo alineado con el eje se representa como una lista, [x1, y1, x2, y2], donde (x1, y1) es la coordenada de su esquina inferior izquierda y (x2 , y2) es la coordenada de su esquina superior derecha. Sus bordes superior e inferior son paralelos al eje X, y su lado izquierdo...

Lea más

Máxima Población Año Solución LeetCode

Planteamiento del problema

Máxima Población Año Solución LeetCode dice que: se le da una matriz de enteros 2D logs donde cada logs[i] = [birthi, deathi] indica los años de nacimiento y muerte del ith persona.

La población de algún año x es el número de personas vivas durante ese año. los ith una persona se cuenta en el año xla población si x está en el incluso distancia [birthi, deathi - 1]. Tenga en cuenta que la persona es no contados en el año en que mueren.

Regreso la Población Máxima Año.

 

Ejemplo 1:

Entrada:

 logs = [[1993,1999],[2000,2010]]

Salida:

 1993

Explicación:

 The maximum population is 1, and 1993 is the earliest year with this population.

Ejemplo 2:

Entrada:

 logs = [[1950,1961],[1960,1971],[1970,1981]]

Salida:

 1960

Explicación:

 
The maximum population is 2, and it had happened in years 1960 and 1970.
So the maximum population year is 1960.

 

Restricciones:

  • 1 <= logs.length <= 100
  • 1950 <= birthi < deathi <= 2050

 

ALGORITMO –

  • Para Encontrar el Año de Máxima Población. Primero, nos enfocaremos en el número total de población en cada año revisando cada intervalo de la matriz dada y encontraremos el recuento máximo y devolveremos el año de valor máximo. Si el recuento es el mismo, simplemente devolvemos el año anterior (primer año).

Enfoque para la solución LeetCode del año de población máxima

– Primero, crearemos una matriz de tamaño 101 porque las restricciones de años se encuentran en el rango de 1950 a 2050.

– después de eso, ejecutaremos un ciclo desde 0 hasta la longitud de los registros y aumentaremos el conteo de la matriz en el índice (logs[i][o]) en 1 y disminuiremos el conteo de la matriz en el índice (logs[i ][1]) por 1

– de nuevo ejecutaremos un ciclo desde 0 hasta la longitud de la matriz y haremos que una variable prev cuente y actualice cada elemento de la matriz por matriz+prev y actualice prev por prev = matriz[i].

– por último, ejecutaremos un ciclo y encontraremos el valor máximo en la matriz y devolveremos ese índice en particular (índice + 1950). Por lo tanto, encuentre el año de máxima población.

Máxima Población Año Solución Leetcode

Código:

Año de población máxima Solución Python Leetcode:

class Solution:
    def maximumPopulation(self, logs: List[List[int]]) -> int:
        arr = [0]*101
        for i in range(len(logs)):
            
            arr[logs[i][0]-1950] += 1
            
            arr[logs[i][1]-1950] -= 1
            
        
        previous = arr[0]
        for i in range(1,101):
            arr[i] += previous
            previous = arr[i]
            
        print(arr)
        maxi = 0
        ind = 0
        
        for i in range(len(arr)):
            if arr[i] > maxi:
                maxi = arr[i]
                ind = i + 1950
        print(maxi)        
        return ind

Año de población máxima Solución Java Leetcode:

class Solution {
    public int maximumPopulation(int[][] logs) {
        
        int[] arr = new int[101];
        for(int i = 0;i < logs.length;i++){
            
            arr[logs[i][0]-1950] +=1;
            arr[logs[i][1]-1950] -=1;
            
            
        }
        
        int prev = arr[0];
        for(int i=1;i<arr.length;i++){
            
            arr[i] += prev;
            prev = arr[i];
            
        }
        
        int ind = 0;
        int maxi = 0;
        
        for(int i=0;i<arr.length;i++){
            
            if(maxi < arr[i]){
                
                maxi = arr[i];
                ind = i+1950;
            }
        }
        
        
        return ind;
        
        
    }
}

Análisis de Complejidad de la Solución Leetcode del Año Máximo de Población:

Complejidad de tiempo

La complejidad temporal de la solución anterior es O(n).

Complejidad de tiempo

La complejidad espacial de la solución anterior es O(1).

Como hemos hecho una matriz de longitud = 101. Entonces podemos considerarlo constante

 

 

 

 

 

 

Solución LeetCode transversal en orden de árbol binario

Declaración del problema: Recorrido en orden de árbol binario Solución de LeetCode Dada la raíz de un árbol binario, devolver el recorrido en orden de los valores de sus nodos. Ejemplo 1: Entrada: root = [1,null,2,3] Salida: [1,3,2] Ejemplo 2: Entrada: root = [] Salida: [] Ejemplo 3: Entrada: root = [1] Salida: [1] Restricciones: El número de nodos en...

Lea más

Diseño Agregar y buscar palabras Estructura de datos Solución LeetCode

Declaración del problema: diseñar una estructura de datos de agregar y buscar palabras La solución de LeetCode dice: diseñe una estructura de datos que admita agregar nuevas palabras y encontrar si una cadena coincide con cualquier cadena agregada previamente. Implemente la clase WordDictionary: WordDictionary() Inicializa el objeto. void addWord(palabra) Agrega una palabra a la estructura de datos, se puede comparar más tarde. bool buscar(palabra) Devuelve verdadero si hay...

Lea más

Translate »