https://leetcode.com/problems/k-closest-points-to-origin/

1. Use sort:

  1. //364 ms 63.7 MB
  2. class Solution {
  3. public:
  4. vector<vector<int>> kClosest(vector<vector<int>>& points, int K) {
  5. vector<int> distances;
  6. for(int i = 0; i < points.size(); i++){
  7. distances.push_back(distance(points[i]));
  8. }
  9. sort(distances.begin(), distances.end());
  10. int distK = distances[K-1];
  11. vector<vector<int>> result;
  12. for(int i = 0; i < points.size(); i++){
  13. if(distance(points[i]) <= distK){
  14. result.push_back(points[i]);
  15. }
  16. }
  17. return result;
  18. }
  19. private:
  20. int distance(vector<int> point){
  21. int dist = (point[0]*point[0]) + (point[1]*point[1]);
  22. return dist;
  23. }
  24. };

Time Complexity: O(N log N)
Space Complexity: O(N)