diff --git a/src/main/java/leetcode/editor/cn/QueriesOnNumberOfPointsInsideACircle.java b/src/main/java/leetcode/editor/cn/QueriesOnNumberOfPointsInsideACircle.java new file mode 100644 index 0000000..ae4d800 --- /dev/null +++ b/src/main/java/leetcode/editor/cn/QueriesOnNumberOfPointsInsideACircle.java @@ -0,0 +1,77 @@ +//给你一个数组 points ,其中 points[i] = [xi, yi] ,表示第 i 个点在二维平面上的坐标。多个点可能会有 相同 的坐标。 +// +// 同时给你一个数组 queries ,其中 queries[j] = [xj, yj, rj] ,表示一个圆心在 (xj, yj) 且半径为 rj 的圆。 +// +// +// 对于每一个查询 queries[j] ,计算在第 j 个圆 内 点的数目。如果一个点在圆的 边界上 ,我们同样认为它在圆 内 。 +// +// 请你返回一个数组 answer ,其中 answer[j]是第 j 个查询的答案。 +// +// +// +// 示例 1: +// +// 输入:points = [[1,3],[3,3],[5,3],[2,2]], queries = [[2,3,1],[4,3,1],[1,1,2]] +//输出:[3,2,2] +//解释:所有的点和圆如上图所示。 +//queries[0] 是绿色的圆,queries[1] 是红色的圆,queries[2] 是蓝色的圆。 +// +// +// 示例 2: +// +// 输入:points = [[1,1],[2,2],[3,3],[4,4],[5,5]], queries = [[1,2,2],[2,2,2],[4,3, +//2],[4,3,3]] +//输出:[2,3,2,4] +//解释:所有的点和圆如上图所示。 +//queries[0] 是绿色的圆,queries[1] 是红色的圆,queries[2] 是蓝色的圆,queries[3] 是紫色的圆。 +// +// +// +// +// 提示: +// +// +// 1 <= points.length <= 500 +// points[i].length == 2 +// 0 <= xi, yi <= 500 +// 1 <= queries.length <= 500 +// queries[j].length == 3 +// 0 <= xj, yj <= 500 +// 1 <= rj <= 500 +// 所有的坐标都是整数。 +// +// Related Topics 数学 +// 👍 5 👎 0 + +package leetcode.editor.cn; +//1828:统计一个圆中点的数目 +public class QueriesOnNumberOfPointsInsideACircle{ + public static void main(String[] args) { + //测试代码 + Solution solution = new QueriesOnNumberOfPointsInsideACircle().new Solution(); + } + //力扣代码 + //leetcode submit region begin(Prohibit modification and deletion) +class Solution { + public int[] countPoints(int[][] points, int[][] queries) { + int size = queries.length; + int[] result = new int[size]; + for (int i = 0; i < size; i++) { + int num = 0; + int length = points.length; + int c = queries[i][2]; + for (int[] point : points) { + int x = Math.abs(queries[i][0] - point[0]); + int y = Math.abs(queries[i][1] - point[1]); + if (x * x + y * y <= c * c) { + num++; + } + } + result[i] = num; + } + return result; + } +} +//leetcode submit region end(Prohibit modification and deletion) + +} \ No newline at end of file diff --git a/src/main/java/leetcode/editor/cn/QueriesOnNumberOfPointsInsideACircle.md b/src/main/java/leetcode/editor/cn/QueriesOnNumberOfPointsInsideACircle.md new file mode 100644 index 0000000..e2fdc8d --- /dev/null +++ b/src/main/java/leetcode/editor/cn/QueriesOnNumberOfPointsInsideACircle.md @@ -0,0 +1,41 @@ +
给你一个数组 points
,其中 points[i] = [xi, yi]
,表示第 i
个点在二维平面上的坐标。多个点可能会有 相同 的坐标。
同时给你一个数组 queries
,其中 queries[j] = [xj, yj, rj]
,表示一个圆心在 (xj, yj)
且半径为 rj
的圆。
对于每一个查询 queries[j]
,计算在第 j
个圆 内 点的数目。如果一个点在圆的 边界上 ,我们同样认为它在圆 内 。
请你返回一个数组 answer
,其中 answer[j]
是第 j
个查询的答案。
+ +
示例 1:
+输入:points = [[1,3],[3,3],[5,3],[2,2]], queries = [[2,3,1],[4,3,1],[1,1,2]] +输出:[3,2,2] +解释:所有的点和圆如上图所示。 +queries[0] 是绿色的圆,queries[1] 是红色的圆,queries[2] 是蓝色的圆。 ++ +
示例 2:
+输入:points = [[1,1],[2,2],[3,3],[4,4],[5,5]], queries = [[1,2,2],[2,2,2],[4,3,2],[4,3,3]] +输出:[2,3,2,4] +解释:所有的点和圆如上图所示。 +queries[0] 是绿色的圆,queries[1] 是红色的圆,queries[2] 是蓝色的圆,queries[3] 是紫色的圆。 ++ +
+ +
提示:
+ +1 <= points.length <= 500
points[i].length == 2
0 <= xi, yi <= 500
1 <= queries.length <= 500
queries[j].length == 3
0 <= xj, yj <= 500
1 <= rj <= 500