leetcode 3531

3531: 统计被覆盖的建筑

如果一个点不在同一行的最左边也不在最右边,那么这个点左右都有点;如果一个点不在同一列的最上边也不在最下边,那么这个点上下都有点。

思路:

记录同一行的最小横坐标和最大横坐标,同一列的最小纵坐标和最大纵坐标。

对于每个建筑 (x,y),如果 x 在这一行的最小值和最大值之间(不能相等),y 在这一列的最小值和最大值之间(不能相等),那么答案加一。

复制代码
class Solution {
public:
    int countCoveredBuildings(int n, vector<vector<int>>& buildings) {
        int ans=0;
        vector<int> row_min(n+1,INT_MAX),row_max(n+1);
        vector<int> col_min(n+1,INT_MAX),col_max(n+1);
        for(auto& p :buildings){
            int x=p[0],y=p[1];
            row_min[y]=min(row_min[y],x);
            row_max[y]=max(row_max[y],x);
            col_min[x]=min(col_min[x],y);
            col_max[x]=max(col_max[x],y);
        }
        for(auto& p :buildings){
            int x=p[0],y=p[1];
            if(x>row_min[y] && x<row_max[y] && y>col_min[x] && y<col_max[x]){
                ans++;
            }
        }

        return ans;
    }
};
相关推荐
饮水桶_T1 小时前
JAVA IO流笔记
开发语言·数据结构·算法
星夜离尘562 小时前
MATLAB 离散数据分箱:半开区间、末端点与计数、加权和、平均
算法·matlab
Pniubi2 小时前
力扣76.最小覆盖子串
算法·leetcode·职场和发展
地平线开发者2 小时前
征程6|用 hrt\_model\_exec 看清 YOLOv5x 的输入、原始输出和后处理
人工智能·算法
csdn_aspnet3 小时前
C++ 3个有序点的方向(Orientation of 3 ordered points)
c++·算法
赤生云电竞3 小时前
GPU算力共享平台架构实践:任务分发与资源隔离的关键配置
算法·架构·gpu算力
青少儿编程课堂5 小时前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:折半搜索优化子集枚举(Meet in the Middle)解析
c++·python·算法·bfs·信息学竞赛
wo_jack6 小时前
C++ 入门笔记(十七):list 入门 —— 为什么 list 不能 sort?
数据结构·c++·面试·stl·list
Oneshot7 小时前
DLX(Dancing Links)算法详解:求解数独最快的算法
算法
文丑颜不良啊7 小时前
LeetCode2541~2560题目解析
java·leetcode