- Queries on Number of Points Inside a Circle
1828. Queries on Number of Points Inside a Circle
class Solution {
public:
vector<int> countPoints(vector<vector<int>>& points, vector<vector<int>>& queries) {
vector<int> result;
for (auto &q: queries) {
int cnt = 0;
for (auto &p: points) {
int dx = p[0] - q[0];
int dy = p[1] - q[1];
if (dx * dx + dy * dy <= q[2] * q[2]) {
++cnt;
}
}
result.push_back(cnt);
}
return result;
}
};
주어진 query 의 중심과 points 의 위치의 거리는 피타고라스 정리를 사용하여 구할 수 있고,
이 거리가 반지름 이하이면 해당 점은 원 안에 위치 한다고 할 수 있다.
sqrt 를 구하는거 보다 반지름의 제곱이 더 간단하므로 두점 사이의 거리 제곱, 반지름의 제곱을 비교해서 원안에 점이 있는지 판단한다.
n == points.size() m == queries.size()
Time: O(n + m)
Space: O(1)
댓글남기기