LeetCode 1725 可以形成最大正方形的矩形数目[排序] HERODING的LeetCode之路

Posted HERODING23

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 1725 可以形成最大正方形的矩形数目[排序] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。


解题思路:
最简单的方法就是标记一个当前最大的正方形边,然后往后找,相同加1,小了忽略,大了重新计数,代码如下:

class Solution 
public:
    int countGoodRectangles(vector<vector<int>>& rectangles) 
        int maxLen = INT_MIN;
        int ans = 0;
        for(auto& rectangle : rectangles) 
            int cur = min(rectangle[0], rectangle[1]);
            if(cur > maxLen) 
                ans = 1;
                maxLen = cur;
             else if(cur == maxLen) 
                ans ++;
             else continue;
        
        return ans;
    
;

第二种方法就是自定义排序一波,按照最小边排序,把最长的边的连续个数记录下来,代码如下:

bool cmp(const vector<int>& r1, const vector<int>& r2) 
    return min(r1[0], r1[1]) > min(r2[0], r2[1]);


class Solution 
public:
    int countGoodRectangles(vector<vector<int>>& rectangles) 
        int ans = 1;
        sort(rectangles.begin(), rectangles.end(), cmp);
        int maxLen = min(rectangles[0][0], rectangles[0][1]);
        for(int i = 1; i < rectangles.size(); i ++) 
            if(min(rectangles[i][0], rectangles[i][1]) == maxLen) 
                ans ++;
             else break;
        
        return ans;
    
;

以上是关于LeetCode 1725 可以形成最大正方形的矩形数目[排序] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode1725. 可以形成最大正方形的矩形数目(C++)

LeetCode 1725 可以形成最大正方形的矩形数目[排序] HERODING的LeetCode之路

LeetCode 2000. 反转单词前缀 / 1414. 和为 K 的最少斐波那契数字数目(贪心证明) / 1725. 可以形成最大正方形的矩形数目

快乐水题1725. 可以形成最大正方形的矩形数目

力扣 1725 可以形成最大正方形的矩形数目

第1725期浅析Typescript设计模式