zoukankan      html  css  js  c++  java
  • leetcode-973最接近原点的K个点

    leetcode-973最接近原点的K个点

    题意

    我们有一个由平面上的点组成的列表 points。需要从中找出 K 个距离原点 (0, 0) 最近的点。

    (这里,平面上两点之间的距离是欧几里德距离。)

    你可以按任何顺序返回答案。除了点坐标的顺序之外,答案确保是唯一的。

    示例 1:

    输入:points = [[1,3],[-2,2]], K = 1
    输出:[[-2,2]]
    解释: 
    (1, 3) 和原点之间的距离为 sqrt(10),
    (-2, 2) 和原点之间的距离为 sqrt(8),
    由于 sqrt(8) < sqrt(10),(-2, 2) 离原点更近。
    我们只需要距离原点最近的 K = 1 个点,所以答案就是 [[-2,2]]。
    

    示例 2:

    输入:points = [[3,3],[5,-1],[-2,4]], K = 2
    输出:[[3,3],[-2,4]]
    (答案 [[-2,4],[3,3]] 也会被接受。)

    提示:

    1. 1 <= K <= points.length <= 10000
    2. -10000 < points[i][0] < 10000
    3. -10000 < points[i][1] < 10000

    算法

    1. 遍历points数组,计算每一个点到原点的距离
    2. 对距离数组排序(升序)->sort函数搞定
    3. from 0 to K,遍历距离数组
    4. 遍历points数组
    5. 如果有距离值与当前距离数组值相等,将其加入到结果vector(相当于数组)中。

    code

     1 class Solution {
     2 public:
     3     vector<vector<int>> kClosest(vector<vector<int>>& points, int K) {
     4         double a[10000] = {0};
     5         vector< vector<int>  > ans(K, vector<int>(2, 0));
     6         for(int i=0; i<points.size(); i++)
     7         {
     8             a[i] = sqrt(points[i][0]*points[i][0] + points[i][1]*points[i][1]);
     9         }
    10         sort(a, a+points.size());
    11         for(int j=0; j<K; j++)
    12         {
    13             for(int t=0; t<points.size(); t++)
    14             {
    15                 if(sqrt(points[t][0]*points[t][0] + points[t][1]*points[t][1]) == a[j])
    16                 {
    17                     ans[j][0] = points[t][0];
    18                     ans[j][1] = points[t][1];
    19                     break;
    20                 }
    21             }
    22         }
    23         return ans;
    24     }
    25 };
  • 相关阅读:
    Java 8 Lambda 表达式
    OSGi 系列(十二)之 Http Service
    OSGi 系列(十三)之 Configuration Admin Service
    OSGi 系列(十四)之 Event Admin Service
    OSGi 系列(十六)之 JDBC Service
    OSGi 系列(十)之 Blueprint
    OSGi 系列(七)之服务的监听、跟踪、声明等
    OSGi 系列(六)之服务的使用
    OSGi 系列(三)之 bundle 事件监听
    OSGi 系列(三)之 bundle 详解
  • 原文地址:https://www.cnblogs.com/yocichen/p/10263775.html
Copyright © 2011-2022 走看看