Algoritmo diario-10

Se le dan n enteros no negativos a1, a2, ..., an, y cada número representa un punto (i, ai) en coordenadas. Dibuje n líneas verticales en las coordenadas. Los dos puntos finales de la línea vertical i son (i, ai) y (i, 0). Encuentre dos de las líneas para que el contenedor que forman con el eje x pueda contener la mayor cantidad de agua.

Nota: No puede inclinar el contenedor, y el valor de n es al menos 2.

La línea vertical en la figura representa la matriz de entrada [1,8,6,2,5,4,8,3,7]. En este caso, el valor máximo que el recipiente puede contener agua (representado por la parte azul) es 49.
Ejemplo:
Entrada: [1,8,6,2,5,4,8,3,7]
Salida: 49
Fuente: LeetCode (LeetCode)
Enlace: https://leetcode-cn.com/problems/container-with -más agua

class Solution {
    public int maxArea(int[] height) {
        int i=0;int len=height.length-1;
        int maxs=0;
        while(i<len)
        {
            int aa=Math.min(height[i],height[len]);
            maxs=Math.max(maxs,aa*(len-i));
            if(height[i]<height[len])
            {
                i++;
            }
            else
            {
                len--;
            }
        }
        return maxs;
    }
}

Supongo que te gusta

Origin www.cnblogs.com/lwyy1223-/p/12728040.html
Recomendado
Clasificación