From 7c8aba82f0fe6fc9a86f340da7d665f9e33e2394 Mon Sep 17 00:00:00 2001 From: yennanliu Date: Sun, 29 Sep 2024 19:19:52 +0800 Subject: [PATCH] update ws --- .../src/main/java/dev/workspace5.java | 48 ++++++++++++++++++- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/leetcode_java/src/main/java/dev/workspace5.java b/leetcode_java/src/main/java/dev/workspace5.java index 891e0da2..759266fe 100644 --- a/leetcode_java/src/main/java/dev/workspace5.java +++ b/leetcode_java/src/main/java/dev/workspace5.java @@ -205,15 +205,59 @@ private int getDays(List weightsList, int speed){ * * * - * idea : + * idea 1: * get min "x len" * and get min "y len" * then ans = x_len * y_len * + * idea 2 : + * + * hash map + * + * {"x": [y1, y2,,,], + * "y" : [x1, x2,,,,] + * } + * */ public int minAreaRect(int[][] points) { - return 0; + // build map + Map> mapX = new HashMap<>(); + Map> mapY = new HashMap<>(); + + for (int[] point : points){ + + int x = point[0]; + int y = point[1]; + + List xList = mapX.getOrDefault(x, new ArrayList<>()); + List yList = mapY.getOrDefault(x, new ArrayList<>()); + + xList.add(x); + yList.add(y); + + mapX.put(x, xList); + mapY.put(y, yList); + } + + int res = Integer.MAX_VALUE; + + for (int i = 0; i < points.length; i++){ + for (int j = 0; j