题目链接
https://leetcode.cn/problems/queries-on-number-of-points-inside-a-circle/
解题思路
题目要求计算每个圆中点的数量
- 首先,需要计算点到圆心的距离,根据题目要求,如果点在圆上,这个点也算在圆内
- 比较点到圆心的距离与该圆半径的大小,小于等于半径,则计数加一
代码
C++
class Solution {
public:
vector<int> countPoints(vector< vector<int> >& points, vector< vector<int> >& queries) {
int queryNum = queries.size();
int pointNum = points.size();
vector<int> ans;
for(int i=0;i<queryNum;i++){
int sum = 0;
for(int j=0;j<pointNum;j++){
if(((queries[i][0]-points[j][0])*(queries[i][0]-points[j][0])+(queries[i][1]-points[j][1])*(queries[i][1]-points[j][1]))<=(queries[i][2]*queries[i][2])){
sum++;
}
}
ans.push_back(sum);
}
return ans;
}
};
Java
class Solution {
public int[] countPoints(int[][] points, int[][] queries) {
int[] ans = new int[queries.length];
for (int i = 0; i < queries.length; i++) {
int sum = 0;
for (int j = 0; j < points.length; j++) {
if (((points[j][0]-queries[i][0])*(points[j][0]-queries[i][0])+(points[j][1]-queries[i][1])*(points[j][1]-queries[i][1]))<=(queries[i][2]*queries[i][2])){
sum++;
}
}
ans[i] = sum;
}
return ans;
}
}