链接:973. 最接近原点的 K 个点

题解:https://leetcode-cn.com/problems/k-closest-points-to-origin/solution/zui-jie-jin-yuan-dian-de-k-ge-dian-by-leetcode-sol/

class Solution {
public:vector<vector<int>> kClosest(vector<vector<int>>& points, int K) {sort(points.begin(), points.end(), [](const vector<int>& u, const vector<int>& v) {return u[0] * u[0] + u[1] * u[1] < v[0] * v[0] + v[1] * v[1];});return {points.begin(), points.begin() + K};}
};
class Solution {public:vector<vector<int>> kClosest(vector<vector<int>>& points, int K) {vector<vector<int>> result;if(points.size() <= 0) {return result;}vector<std::pair<int, int>> table;// 先申请空间table.reserve(points.size());for(int i = 0; i < points.size(); ++i) {table.emplace_back(std::pair<int, int>(pow(points[i][0], 2) + pow(points[i][1], 2), i));}const auto& cmp = [](std::pair<int, int>& n1, std::pair<int, int>& n2) {return n1.first < n2.first;};// 按照距离排序sort(table.begin(), table.end(), cmp);// 先申请空间result.reserve(points.size());for(int i = 0; i < K; ++i) {result.push_back(std::move(points[table[i].second]));}return result;}
};
class Solution {public:vector<vector<int>> kClosest(vector<vector<int>>& points, int K) {vector<vector<int>> result;if(points.size() <= 0) {return result;}// pair.first值大的游戏priority_queue<std::pair<int, int>> que;// 时间复杂度Nlog(K), N是points.size() for(int i = 0; i < points.size(); ++i) {int distance = pow(points[i][0], 2) + pow(points[i][1], 2);if(que.size() < K) {que.push(std::pair<int, int>(distance, i));} else if(que.top().first > distance) {que.pop();que.push(std::pair<int, int>(distance, i));}}// 先申请空间result.reserve(points.size());while(!que.empty()) {int index = que.top().second;que.pop();result.push_back(points[index]);}return result;}
};

973. 最接近原点的 K 个点相关推荐

  1. LeetCode 973. 最接近原点的 K 个点(排序/优先队列/快排)

    文章目录 1. 题目 2. 解题 2.1 排序 2.2 优先队列 2.3 快排思路 1. 题目 我们有一个由平面上的点组成的列表 points.需要从中找出 K 个距离原点 (0, 0) 最近的点. ...

  2. leetcode 973. 最接近原点的 K 个点(排序)

    我们有一个由平面上的点组成的列表 points.需要从中找出 K 个距离原点 (0, 0) 最近的点. (这里,平面上两点之间的距离是欧几里德距离.) 你可以按任何顺序返回答案.除了点坐标的顺序之外, ...

  3. 最接近原点的 k 个点_第K个最接近原点的位置

    最接近原点的 k 个点 In this article, I will be explaining to you one of the problems that you may find when ...

  4. Leetcode每日一题:973.k-closest-points-to-origin(最接近原点的K个点)

    思路:建立一个pair数组vec,每一个元素保存points的索引和坐标距远点的距离值,然后对vec进行排序,排序按照pair的值,最后从前到后输出k个点到返回值中即可:为什么不用map?因为不能直接 ...

  5. 确定S中最接近中位数的k个元素(算法导论第三版9.3-7)

    确定S中最接近中位数的k个元素 (算法导论第三版9.3-7题) 时间复杂度O(n) vector<int> k_elements_closest_to_median(int *array, ...

  6. 几种排序与最大K问题

    图片链接 0. 链表归并和快排 链表排序常用归并,但是快排面试常出: 一定要理解归并的本质: 两步走: 1. 先切分成(有序)两部分,此处各部分都是有序的 2. 两部分有序合并 切分成两部分的最小粒度 ...

  7. LeetCode 215. 数组中的第K个最大元素(快速排序)

    1. 题目 在未排序的数组中找到第 k 个最大的元素.请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素. 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2 ...

  8. 《编程能力基础》刷题笔记(41 题)

    <编程能力基础>刷题笔记 1. 单调数列 题解:递归.模拟.API 2. 实现 strStr() 题解:API.暴力.滑动窗口 3. 平衡二叉树 题解:迭代 4. 重复的子字符串 题解:模 ...

  9. LeetCode题解目录

    最新更新于2020.11.27 前往LeetCode主页. 前往GitHub源码.(服务器原因,暂停同步.) 前往码云主页. 已解决 456/1878 - 简单353 中等 90 困难 13 2020 ...

最新文章

  1. bios设置_老富士通bios设置启动项方法是什么 富士通bios设置u盘启动的方法
  2. QQ登录的那些坑(如何开发qq登陆功能)
  3. 西藏最大云计算数据中心明年投入试运营
  4. java学习:理解abstract
  5. 傅里叶变换的初级理解二
  6. Django2.+ path配置
  7. UINavigationController扩展
  8. 西建大历年电子与通信工程复试真题_学姐分享2020年西安电子科技大学电子与通信工程考研初复试经验指导...
  9. 如何实现rtsp h265 转 rtmp (rtsp hevc 转 rtmp)并转发到CDN或自建服务器
  10. ecshop活动页_ECSHOP团购活动,ECSHOP团购列表
  11. Fixed Function Shader
  12. php soap 两个版本_Ceontos 安装php7以上的版本
  13. layui table切换html,解决Layui中切换tab时table样式错乱问题
  14. java excel 边框颜色_java(jxl) 改变excel表格背景及边框
  15. ftp服务器软件 性能对比,常用ftp服务器软件介绍
  16. 科技「垦荒」,AI护虎
  17. 农业技术:从能量的角度看农业革命(垄耕种植法)
  18. 推特开发者 推特 oauth1.0a 授权【推特开发者文档系列12】
  19. php artisan migrate,PHP artisan迁移不创建新表
  20. Android-加速传感器或者OrientationEventListener做横竖屏切换

热门文章

  1. 暑假练习:uva12563(01背包问题)
  2. SQL Server 实现递归获取层级数据
  3. 有关两个jar包中包含完全相同的包名和类名的加载问题
  4. 《众妙之门——自由网站设计师成功之道》一1.6 创造性地处理行政事务性工作...
  5. JAVA接口继承、抽象类等
  6. 企业运维之域控篇(三)--加入域
  7. 如何更流畅地使用 Google 搜索?
  8. 在linux系统下挂接(mount)光盘镜像文件、移动硬盘、U盘以及Windows网络共享和UNIX...
  9. Shell 反引号、$() 和 ${} 的区别
  10. Win10 安装 VS2015 失败解决办法