From 10d1ada0842bdcf0a170fb31c53b7d9257d6459d Mon Sep 17 00:00:00 2001 From: 0xff-dev Date: Mon, 15 Dec 2025 21:27:02 +0800 Subject: [PATCH] Add solution and test-cases for problem 3625 --- .../3625.Count-Number-of-Trapezoids-II/1.png | Bin 0 -> 46406 bytes .../3625.Count-Number-of-Trapezoids-II/2.png | Bin 0 -> 37348 bytes .../README.md | 38 ++++++++-- .../Solution.go | 66 +++++++++++++++++- .../Solution_test.go | 13 ++-- 5 files changed, 102 insertions(+), 15 deletions(-) create mode 100644 leetcode/3601-3700/3625.Count-Number-of-Trapezoids-II/1.png create mode 100644 leetcode/3601-3700/3625.Count-Number-of-Trapezoids-II/2.png diff --git a/leetcode/3601-3700/3625.Count-Number-of-Trapezoids-II/1.png b/leetcode/3601-3700/3625.Count-Number-of-Trapezoids-II/1.png new file mode 100644 index 0000000000000000000000000000000000000000..a0cb84923e66b689190ea421f039914967570a43 GIT binary patch literal 46406 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

h2L$@q1a*d8FJ#yh4T*r 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 literal 0 HcmV?d00001 diff --git a/leetcode/3601-3700/3625.Count-Number-of-Trapezoids-II/2.png b/leetcode/3601-3700/3625.Count-Number-of-Trapezoids-II/2.png new file mode 100644 index 0000000000000000000000000000000000000000..c19b048bcc0bf49edc530c42b99d5925ff0c8cba GIT binary patch literal 37348 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 HaQ*)P+A8y3 literal 0 HcmV?d00001 diff --git a/leetcode/3601-3700/3625.Count-Number-of-Trapezoids-II/README.md b/leetcode/3601-3700/3625.Count-Number-of-Trapezoids-II/README.md index 1f379be55..c05a94317 100755 --- a/leetcode/3601-3700/3625.Count-Number-of-Trapezoids-II/README.md +++ b/leetcode/3601-3700/3625.Count-Number-of-Trapezoids-II/README.md @@ -1,15 +1,41 @@ # [3625.Count Number of Trapezoids II][title] -> [!WARNING|style:flat] -> This question is temporarily unanswered if you have good ideas. Welcome to [Create Pull Request PR](https://github.com/kylesliu/awesome-golang-algorithm) - ## Description +You are given a 2D integer array `points` where `points[i] = [xi, yi]` represents the coordinates of the `ith` point on the Cartesian plane. + +Return the number of unique trapezoids that can be formed by choosing any four distinct points from `points`. + +A **trapezoid** is a convex quadrilateral with **at least one pair** of parallel sides. Two lines are parallel if and only if they have the same slope. + +**Example 1:** + +![1](./1.png) + +``` +Input: points = [[-3,2],[3,0],[2,3],[3,2],[2,-3]] + +Output: 2 -**Example 1:** +Explanation: + +There are two distinct ways to pick four points that form a trapezoid: + +The points [-3,2], [2,3], [3,2], [2,-3] form one trapezoid. +The points [2,3], [3,2], [3,0], [2,-3] form another trapezoid. +``` + +**Example 2:** + +![2](./2.png) ``` -Input: a = "11", b = "1" -Output: "100" +Input: points = [[0,0],[1,0],[0,1],[2,1]] + +Output: 1 + +Explanation: + +There is only one trapezoid which can be formed. ``` ## 题意 diff --git a/leetcode/3601-3700/3625.Count-Number-of-Trapezoids-II/Solution.go b/leetcode/3601-3700/3625.Count-Number-of-Trapezoids-II/Solution.go index d115ccf5e..be7f50ae0 100644 --- a/leetcode/3601-3700/3625.Count-Number-of-Trapezoids-II/Solution.go +++ b/leetcode/3601-3700/3625.Count-Number-of-Trapezoids-II/Solution.go @@ -1,5 +1,67 @@ package Solution -func Solution(x bool) bool { - return x +func Solution(points [][]int) int { + n := len(points) + inf := 1e9 + 7 + slopeToIntercept := make(map[float64][]float64) + midToSlope := make(map[float64][]float64) + ans := 0 + + for i := 0; i < n; i++ { + x1, y1 := points[i][0], points[i][1] + for j := i + 1; j < n; j++ { + x2, y2 := points[j][0], points[j][1] + dx := x1 - x2 + dy := y1 - y2 + + var k, b float64 + if x2 == x1 { + k = inf + b = float64(x1) + } else { + k = float64(y2-y1) / float64(x2-x1) + b = float64(y1*dx-x1*dy) / float64(dx) + } + + mid := float64((x1+x2)*10000 + (y1 + y2)) + slopeToIntercept[k] = append(slopeToIntercept[k], b) + midToSlope[mid] = append(midToSlope[mid], k) + } + } + + for _, sti := range slopeToIntercept { + if len(sti) == 1 { + continue + } + + cnt := make(map[float64]int) + for _, bVal := range sti { + cnt[bVal]++ + } + + totalSum := 0 + for _, count := range cnt { + ans += totalSum * count + totalSum += count + } + } + + for _, mts := range midToSlope { + if len(mts) == 1 { + continue + } + + cnt := make(map[float64]int) + for _, kVal := range mts { + cnt[kVal]++ + } + + totalSum := 0 + for _, count := range cnt { + ans -= totalSum * count + totalSum += count + } + } + + return ans } diff --git a/leetcode/3601-3700/3625.Count-Number-of-Trapezoids-II/Solution_test.go b/leetcode/3601-3700/3625.Count-Number-of-Trapezoids-II/Solution_test.go index 14ff50eb4..605d7dff9 100644 --- a/leetcode/3601-3700/3625.Count-Number-of-Trapezoids-II/Solution_test.go +++ b/leetcode/3601-3700/3625.Count-Number-of-Trapezoids-II/Solution_test.go @@ -10,12 +10,11 @@ func TestSolution(t *testing.T) { // 测试用例 cases := []struct { name string - inputs bool - expect bool + inputs [][]int + expect int }{ - {"TestCase", true, true}, - {"TestCase", true, true}, - {"TestCase", false, false}, + {"TestCase1", [][]int{{-3, 2}, {3, 0}, {2, 3}, {3, 2}, {2, -3}}, 2}, + {"TestCase2", [][]int{{0, 0}, {1, 0}, {0, 1}, {2, 1}}, 1}, } // 开始测试 @@ -30,10 +29,10 @@ func TestSolution(t *testing.T) { } } -// 压力测试 +// 压力测试 func BenchmarkSolution(b *testing.B) { } -// 使用案列 +// 使用案列 func ExampleSolution() { }