wolves 3 meses atrás
pai
commit
31ed535887
2 arquivos alterados com 54 adições e 0 exclusões
  1. 29 0
      25/11/3531.cpp
  2. 25 0
      25/11/go/3531.go

+ 29 - 0
25/11/3531.cpp

@@ -0,0 +1,29 @@
+#include <vector>
+
+class Solution {
+public:
+    int countCoveredBuildings(int n, std::vector<std::vector<int>>& buildings) {
+        std::vector<int> maxX(n + 1);
+        std::vector<int> minX(n + 1, n + 1);
+        std::vector<int> maxY(n + 1);
+        std::vector<int> minY(n + 1, n + 1);
+
+        for (auto &p : buildings) {
+            int x = p[0], y = p[1];
+            maxX[y] = std::max(maxX[y], x);
+            minX[y] = std::min(minX[y], x);
+            maxY[x] = std::max(maxY[x], y);
+            minY[x] = std::min(minY[x], y);
+        }
+        
+        int res = 0;
+        for (auto &p : buildings) {
+            int x = p[0], y = p[1];
+            if (x > minX[y] && x < maxX[y] && y > minY[x] && y < maxY[x]) {
+                res++;
+            }
+        }
+
+        return res;
+    }
+};

+ 25 - 0
25/11/go/3531.go

@@ -0,0 +1,25 @@
+package L12
+
+import "math"
+
+func countCoveredBuildings(n int, buildings [][]int) int {
+	ans, minX, maxX, minY, maxY := 0, make([]int, n+1), make([]int, n+1), make([]int, n+1), make([]int, n+1)
+	for i := range minX {
+		minX[i], minY[i], maxX[i], maxY[i] = math.MaxInt, math.MaxInt, math.MinInt, math.MinInt
+	}
+
+	for _, building := range buildings {
+		x := building[0]
+		y := building[1]
+		minX[y], maxX[y], minY[x], maxY[x] = min(minX[y], x), max(maxX[y], x), min(minY[x], y), max(maxY[x], y)
+	}
+
+	for _, building := range buildings {
+		x := building[0]
+		y := building[1]
+		if x < maxX[y] && x > minX[y] && y < maxY[x] && y > minY[x] {
+			ans++
+		}
+	}
+	return ans
+}

备用站点 当前处于降级运行的备用站点,仅供应急访问,数据和功能可能不是最新。