Solución LeetCode de suma de subarreglo continuo

Declaración del problema Suma de subarreglo continuo Solución LeetCode: dada una matriz de enteros nums y un entero k, devuelve verdadero si nums tiene un subarreglo continuo del tamaño de al menos dos cuyos elementos suman un múltiplo de k, o falso de lo contrario. Un entero x es múltiplo de k si existe un entero n tal que x = n * k. 0 es siempre un...

Lea más

Encuentra al Ganador de la Solución LeetCode del Juego Circular

Declaración del problema Encuentre el ganador del juego circular Solución LeetCode: hay n amigos que están jugando un juego. Los amigos están sentados en círculo y están numerados del 1 al n en el sentido de las agujas del reloj. De manera más formal, moverse en el sentido de las agujas del reloj desde el enésimo amigo lo lleva al...

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

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

 

 

 

 

 

 

Intercambios mínimos para agrupar todos los 1 juntos Solución Leetcode

Declaración del problema Intercambios mínimos para agrupar todos los 1 juntos Solución Leetcode: dice que, dados los datos de una matriz binaria, devuelva la cantidad mínima de intercambios necesarios para agrupar todos los 1 presentes en la matriz en cualquier lugar de la matriz. Entrada: data = [1,0,1,0,1] Salida: 1 Explicación: Hay 3 formas de agrupar todo...

Lea más

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

Declaración del problema: Año de máxima población La solución de Leetcode dice que: se le proporciona una matriz de registros de enteros 2D donde cada registro [i] = [birthi, deathi] indica los años de nacimiento y muerte de la i-ésima persona. ¿La población de algún año x es el número de personas vivas durante ese año? La i-ésima persona se cuenta en la población del año x si x es...

Lea más

La mejor solución LeetCode para puntos de encuentro

Declaración del problema: la mejor solución de Leetcode para el punto de encuentro dice: Dada la cuadrícula de cuadrícula binaria amxn donde cada 1 marca la casa de un amigo, devuelva la distancia mínima total de viaje. La distancia total de viaje es la suma de las distancias entre las casas de los amigos y el punto de encuentro. La distancia se calcula utilizando la distancia de Manhattan, …

Lea más

Solución Leetcode de suma mínima de ruta

Declaración del problema La solución de LeetCode de la suma mínima de la ruta: la "suma mínima de la ruta" dice que la cuadrícula anxm dada consta de números enteros no negativos y necesitamos encontrar una ruta desde la parte superior izquierda hasta la parte inferior derecha, lo que minimiza la suma de todos los números a lo largo de la ruta . Solo podemos movernos...

Lea más

Translate »