【每日一题Day97】LC1828统计一个圆中点的数目 | 模拟

简介: 思路:双重循环计算每个点到圆点的距离,如果小于等于半径,则证明在圆内

统计一个圆中点的数目【LC1828】


给你一个数组 points ,其中 points[i] = [xi, yi] ,表示第 i 个点在二维平面上的坐标。多个点可能会有 相同 的坐标。


同时给你一个数组 queries ,其中 queries[j] = [xj, yj, rj] ,表示一个圆心在 (xj, yj) 且半径为 rj 的圆。


对于每一个查询 queries[j] ,计算在第 j 个圆 点的数目。如果一个点在圆的 边界上 ,我们同样认为它在圆


请你返回一个数组 answer ,其中 answer[j]是第 j 个查询的答案。


看到这题的时候我脑子里闪过了许多想法:离线查询,二维累加和数组……但是都不行,还是暴力吧


  • 思路:双重循环计算每个点到圆点的距离,如果小于等于半径,则证明在圆内


  • 实现


class Solution {
    public int[] countPoints(int[][] points, int[][] queries) {
        int n = queries.length;
        int[] ans = new int[n];
        for (int i = 0; i < n; i++){
            for (int[] p : points){
                double dis = Math.pow(p[0] - queries[i][0], 2) + Math.pow(p[1] - queries[i][1], 2);
                if (dis <= Math.pow(queries[i][2], 2)){
                    ans[i]++;
                }
            }
        }
        return ans;
    }
}


。复杂度


  • 时间复杂度:O ( n ∗ m ) ,n和m分别为点的数量和圆的数量
  • 空间复杂度:O ( 1 )
目录
相关文章
|
7月前
【每日一题Day292】LC1572矩阵对角线元素的和 模拟
【每日一题Day292】LC1572矩阵对角线元素的和 模拟
31 0
|
7月前
【每日一题Day141】LC2379得到 K 个黑块的最少涂色次数 | 滑动窗口
【每日一题Day141】LC2379得到 K 个黑块的最少涂色次数 | 滑动窗口
44 0
|
7月前
【每日一题Day133】LC2373矩阵中的局部最大值 | 模拟
【每日一题Day133】LC2373矩阵中的局部最大值 | 模拟
54 0
|
7月前
6366. 在网格图中访问一个格子的最少时间(dijkstra在矩阵上的运用)
6366. 在网格图中访问一个格子的最少时间(dijkstra在矩阵上的运用)
|
7月前
【每日一题Day241】LC1254统计封闭岛屿的数目 | dfs
【每日一题Day241】LC1254统计封闭岛屿的数目 | dfs
52 1
|
7月前
【每日一题Day240】LC2481分割圆的最少切割次数 | fenlei
【每日一题Day240】LC2481分割圆的最少切割次数 | fenlei
36 0
|
7月前
【每日一题Day165】LC1039多边形三角剖分的最低得分 | 区间dp
【每日一题Day165】LC1039多边形三角剖分的最低得分 | 区间dp
59 0
|
7月前
【每日一题Day353】LC2525根据规则将箱子分类 | 模拟
【每日一题Day353】LC2525根据规则将箱子分类 | 模拟
35 0
|
存储
【每日一题Day60】LC1703得到连续 K 个 1 的最少相邻交换次数 | 中位数贪心
局部最优:x位于区间[p[0],p[k−1]]内部时【无论位于哪个位置】,到p[0]和p[k−1]的距离是定值p[k−1]−p[0],因此应使x xx位于所有区间的内部即中位数,使x xx到所有区间的距离为定值,此时能够达到全局最优
105 0
【每日一题Day60】LC1703得到连续 K 个 1 的最少相邻交换次数 | 中位数贪心
|
存储
【每日一题Day35】LC1742盒子中小球的最大数量 | 哈希表 找规律
给你两个整数 lowLimit 和 highLimit ,返回放有最多小球的盒子中的小球数量*。*如果有多个盒子都满足放有最多小球,只需返回其中任一盒子的小球数量。
108 0
【每日一题Day35】LC1742盒子中小球的最大数量 | 哈希表 找规律