77 lines
2.4 KiB
Java
77 lines
2.4 KiB
Java
|
//给你一个数组 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)
|
|||
|
|
|||
|
}
|