← 返回目录

算法笔试模拟题精解之“能量半径”

第 42 / 74 卷日期:

算法笔试模拟题精解之“能量半径”

贡献者 | 黄信旭

简介:题目的含义就是找到距离原点最近的第 k 个点,并求它的半径。这个题

的关键在于排序算法。使用最简单的冒泡排序,时间复杂度 O(n^2);使用快速排序

等好一点的排序算法,时间复杂度 O(nlog(n));也可以使用 java 中 Arrays 类中的

sort 函数。

题目描述

题目等级:中等

知识点:二分查找、树状数组

查看题目:能量半径

codancer 来到了一个能量平面上的中心,坐标为 (0,0),接下来巫师 Tom 会

在 q 个坐标上放置能量点,每个能量点的能量值为 1,为了打败哥斯拉,他需要至少

k 点的能量,因此他想确定一个最小的整数半径 r 使得 codancer 能够从这个圆心为

(0,0),半径为 r 的圆形区域内得到至少 k 个能量值,请你帮他确定最小的整数半径 r。

输入包含三个部分,第一个输入能量点的个数 q(1<=q<=100000),第二个输入必须

获得的最小能量值 k(0<=k<=q),第三个是 q 个坐标 (xi,yi),(-100000<=xi<=100000,

-100000<=yi<=100000 并且 xi 和 yi 都是整数 )。

输出一个正整数 r,表示最小的半径。

示例 1

输入:

3

[[1,1],[-1,1],[-1,-1],[2,3]]

输出:

2

注意

当半径为 2 的时候可以收集到 1,1,[-1,-1] 处的能量。

解题思路:排序算法

题目的含义就是找到距离原点最近的第 k 个点,并求它的半径。

计算过程:

  1. 计算每个点到原点的距离,为了减少计算量可以只计算到平方。使用

long[n] 这样的数组来保存。使用 long 类型是为了防止平方之后结果超出

int 类型范围。

  1. 对距离进行从小到大排序
  2. 取排序后的第 k 个数值开根号,转化为 int 类型并加 1。加 1 是因为开根号后

可能为小数,转化成 int 类型会直接舍去小数部分,导致结果比实际小一些。

这个题的关键在于排序算法。

使用最简单的冒泡排序,时间复杂度 O(n^2);

使用快速排序等好一点的排序算法,时间复杂度 O(nlog(n));

也可以使用 java 中 Arrays 类中的 sort 函数。

看完之后是不是有了想法了呢,快来练练手吧 >> 查看题目:能量半径

全站分卷索引 · 74 卷
  1. 1一、算法思想
  2. 2算法笔试模拟题精解之“打怪兽”
  3. 31.2 贪心
  4. 4算法笔试模拟题精解之“最强的团队”
  5. 5算法笔试模拟题精解之“Tom 爱吃巧克力”
  6. 6算法笔试模拟题精解之“吃奶酪”
  7. 7算法笔试模拟题精解之“一的个数”
  8. 8算法笔试模拟题精解之“Bob 的花束”
  9. 9算法笔试模拟题精解之“钱庄”
  10. 10算法笔试模拟题精解之“移动射击”
  11. 11算法笔试模拟题精解之“相似数组”
  12. 12算法笔试模拟题精解之“过吊桥”
  13. 13算法笔试模拟题精解之“完美排列”
  14. 14算法笔试模拟题精解之“采摘圣诞果”
  15. 15算法比赛模拟题精解之“Tairitsu and Dynamic Objects”
  16. 16算法笔试模拟题精解之“Codancer 的炸弹引爆”
  17. 17算法笔试模拟题精解之“学习小组”
  18. 18算法笔试模拟题精解之“恢复字符串”
  19. 191.3 DP/ 动态规划
  20. 20算法笔试模拟题精解之“寻找等比数列”
  21. 21算法笔试模拟题精解之“字符配对”
  22. 22算法笔试模拟题精解之“数组染色”
  23. 23算法笔试模拟题精解之“连绵的群山”
  24. 24算法笔试模拟题精解之“难住Tom 的问题”
  25. 25算法笔试模拟题精解之“变化的字符”
  26. 26算法笔试模拟题精解之“跳房子”
  27. 27算法笔试模拟题精解之“寒假活动”
  28. 28算法笔试模拟题精解之“最短路”
  29. 29算法笔试模拟题精解之“codancer 上楼”
  30. 30算法笔试模拟题精解之“木棒拼接”
  31. 31算法笔试模拟题精解之“Codancer 的数组封印”
  32. 32算法笔试模拟题精解之“Jerry 的异或运算”
  33. 33算法笔试模拟题精解之“小明的数学作业”
  34. 34算法笔试模拟题精解之“奇偶数列”
  35. 351.4 剪枝
  36. 361.5 尺取法
  37. 37算法笔试模拟题精解之“调整数组”
  38. 38算法笔试模拟题精解之“最优分组”
  39. 39算法笔试模拟题精解之“破译密码”
  40. 40二、数据结构
  41. 412.2 搜索
  42. 42算法笔试模拟题精解之“能量半径”
  43. 43算法笔试模拟题精解之“苹果收获程序”
  44. 44算法笔试模拟题精解之“恐怖的辐射”
  45. 45算法笔试模拟题精解之“树的拆分”
  46. 46算法笔试模拟题精解之“Password”
  47. 47算法笔试模拟题精解之“神奇数字在哪里”
  48. 48算法笔试模拟题精解之“神奇的棋子”
  49. 492.3 树
  50. 50算法笔试模拟题精解之“Codancer 的旅行”
  51. 51算法笔试模拟题精解之“Codancer 的求和”
  52. 52算法笔试模拟题精解之“找出二叉搜索树的第2 大的数”
  53. 532.4 线型
  54. 54算法笔试模拟题精解之“最活跃的数”
  55. 55算法笔试模拟题精解之“非递减序列”
  56. 56算法笔试模拟题精解之“Tom 跳方格”
  57. 57算法笔试模拟题精解之“复杂的字符串”
  58. 58算法笔试模拟题精解之“神秘消失”
  59. 59三、计算
  60. 60算法笔试模拟题精解之“简单题?
  61. 61算法笔试模拟题精解之“朋友一生一起走”
  62. 62算法笔试模拟题精解之“正三角塔”
  63. 63算法笔试模拟题精解之“组队难题”
  64. 64算法笔试模拟题精解之“2n 合体”
  65. 65算法笔试模拟题精解之“平行线”
  66. 66算法笔试模拟题精解之“叠叠高”
  67. 67算法笔试模拟题精解之“公平”
  68. 68算法笔试模拟题精解之“Tom 的手工课”
  69. 69算法笔试模拟题精解之“填数问题”
  70. 70算法笔试模拟题精解之“Jerry 的考验”
  71. 71算法笔试模拟题精解之“超车”
  72. 72算法笔试模拟题精解之“坏掉的时钟”
  73. 73算法笔试模拟题精解之“期末考试”
  74. 74算法笔试模拟题精解之“滑雪比赛”