当前位置: 首页 > news >正文

170个可带链接锚文本外链的网站论坛wordpress免费杂志模板

170个可带链接锚文本外链的网站论坛,wordpress免费杂志模板,福州网站建设搭建,做网站注册什么公司好题目信息 LeetoCode地址: . - 力扣#xff08;LeetCode#xff09; 题目理解 题意简单且直观#xff0c;而且是很经典的考验快速排序以及堆排序的算法题#xff0c;很考验基本功。 堆排序写法 对points数组原地建立小顶堆 并依次弹出第1个元素#xff0c;重新调整堆…题目信息 LeetoCode地址: . - 力扣LeetCode 题目理解 题意简单且直观而且是很经典的考验快速排序以及堆排序的算法题很考验基本功。 堆排序写法 对points数组原地建立小顶堆 并依次弹出第1个元素重新调整堆顶元素再弹出第1个。。。直到弹出前K个元素。 时间复杂度: O(nlogn) 额外空间复杂度:O(k) class Solution {int[][] points;public int[][] kClosest(int[][] points, int k) {this.points points;buildMinHeap(points, points.length);int[][] res new int[k][2];int lastIndex points.length-1;for (int i 0; ik; i) {res[i] points[0];swap(0, lastIndex--);minHeapify(0, lastIndex1);}return res;}public void buildMinHeap(int[][] points, int length) {for (int i points.length/2; i0; i--) {minHeapify(i, length);}}public void minHeapify(int i, int length) {int l i*21, r i*22;int min i;int minLength points[i][0]*points[i][0] points[i][1]*points[i][1];int lMinLength l length ? points[l][0]*points[l][0] points[l][1] * points[l][1] : Integer.MAX_VALUE;int rMinLength r length ? points[r][0]*points[r][0] points[r][1] * points[r][1] : Integer.MAX_VALUE;if (lMinLength minLength) {min l;minLength lMinLength;}if (rMinLength minLength) {min r;}if (i ! min) {swap(i, min);minHeapify(min, length);}}void swap(int a, int b) {int[] tmp points[a];points[a] points[b];points[b] tmp;} } 快速排序写法 普通的写法是直接对整个数组排序然后取前k个元素然而这不是最高效的。 由于我们仅需要前k个元素而且不关注顺序因此可以省略到k之后元素的顺序。 假如我们当前左右边界分别是l和r,在快排中间步骤中确认了j位置元素的值后如果发现k j, 则无需再关注j到r之间元素的排序结果 类似的假如k j, 那我们也无需再关注l到j之间的元素因为我们已经确认了他们必定会出现在最终结果集中。 时间复杂度:O(n), 由于我们没有进行任何多余元素的排序动作。 额外空间复杂度:O(1), 我们是在原地进行排序没有使用额外空间。 int k;int[][] points;public int[][] kClosest(int[][] points, int k) {this.k k;this.points points;quickSort(0, points.length-1); return Arrays.copyOfRange(points, 0, k);}public void quickSort(int l, int r) {if (l r) {return;}int i l-1, j r1;int[] mid points[l (r-l)/2];while (i j) {while (compare(mid, points[i]));while (compare(points[--j], mid));if (i j) {swap(i, j);}}if (j k) {quickSort(l, j);} else if (k j1) {quickSort(j1, r);}}boolean compare(int[] a, int[] b) {return (a[0]*a[0] a[1]*a[1]) (b[0]*b[0] b[1]*b[1]);}void swap(int a, int b) {int[] tmp points[a];points[a] points[b];points[b] tmp;}
http://www.pierceye.com/news/248841/

相关文章:

  • 网站的建设与维护那个网站做图片好
  • 昆山网站建设详细方案建设企业网站初始必备的六大功能
  • 做网站是前端还是后端网站规划 设计 制作 发布与管理过程
  • 黄山网站开发威县做网站哪里便宜
  • 网站怎么分类视频聚合网站怎么做不侵权
  • 有没有做问卷还能赚钱的网站套别人的网站模板吗
  • 东莞做汽车有没有买票的网站做谷歌推广一个月赚10万
  • 抚州城乡建设厅网站建设局官网查询
  • 汉中微信网站建设装修3d效果图怎么制作
  • wordpress 主题放哪站内关键词自然排名优化
  • 网站备案后经营做网站实例教程
  • 软件网站怎么做的python下载安装教程
  • 旅游网站开发分析报告网站建设教程搭建芽嘱湖南岚鸿信赖
  • 网站的配色方案高校网站建设意义
  • 滇中引水工程建设管理局网站网站开发怎样验收
  • ps制作网站logo阿里云网站备案拍照
  • 网站建设合同】wordpress翻书
  • 电商网站建设制作隆化县建设局网站
  • 宁波网站建设rswl网页美工设计教案
  • 贵州省住房城乡建设部网站json网站开发
  • 桥头网站仿做百度里面的站长工具怎么取消
  • 博物馆网站页面设计说明山东高端网站定制
  • python网站开发效率jsp做网站下载图片
  • 营销式网站建设免费注册个人网站官网
  • 高职高专 网站建设与维护开发一个网站平台多少钱
  • 网站后缀有哪些宜昌建设网站
  • iis做网站的流程wordpress有中文版没
  • 一般的美工可以做网站吗网站做相册
  • 扁平化网站psd招聘类网站怎么做
  • 想当淘客自己的网站怎么做服装网页设计网站