LeetCode 1725. El número de rectángulos que pueden formar el cuadrado más grande

Darle una matriz de rectángulos, donde rectángulos [i] = [li, wi] significa que la longitud del i-ésimo rectángulo es li y el ancho es wi.

Si k satisface tanto k <= li como k <= wi, entonces el i-ésimo rectángulo se puede cortar en un cuadrado con una longitud de lado k. Por ejemplo, el rectángulo [4,6] se puede cortar en un cuadrado con una longitud lateral de hasta 4.

Sea maxLen la longitud del lado del cuadrado más grande que se puede dividir de los rectángulos de la matriz rectangular.

Devuelve el número de rectángulos que se pueden cortar de un cuadrado con longitud de lado maxLen.

1 <= rectangles.length <= 1000
rectángulos [i] .length == 2
1 <= li, wi <= 109
li! = Wi

Atraviesa la matriz. Cuando la longitud del lado del cuadrado más grande que se puede cortar del rectángulo atravesado actual es más larga que el máximo actual, actualiza la longitud del lado más grande e inicializa el número de cuadrados que se pueden cortar; cuando el rectángulo atravesado puede cortar el cuadrado más grande Cuando la longitud del lado es igual a la longitud máxima del lado del cuadrado actual, aumente el número de cortes:

class Solution {
    
    
public:
    int countGoodRectangles(vector<vector<int>>& rectangles) {
    
    
        if (!rectangles.size()) {
    
    
            return 0;
        }

        int res = 1;
        int maxLen = 0;
        for (vector<int> &rectangle : rectangles) {
    
    
            int maxI = min(rectangle[0], rectangle[1]);

            if (maxI > maxLen) {
    
    
                res = 1;
                maxLen = maxI;
            } else if (maxI == maxLen) {
    
    
                ++res;
            }
        }

        return res;
    }
};

Supongo que te gusta

Origin blog.csdn.net/tus00000/article/details/112854885
Recomendado
Clasificación