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

潍坊网站建设平台学生成绩管理系统 网站建设

潍坊网站建设平台,学生成绩管理系统 网站建设,中源建设有限公司网站,昆山营销型网站建设这道题我想了一会儿#xff0c;实在想不到比较好的算法#xff0c;只能硬着头皮写了#xff0c;然后不断的debug#xff0c;经过我不懈的努力#xff0c;最后还是AC#xff0c;不过效率确实低。 我就是按照最直接的方法来#xff0c;先把intervals数组按照第一个数star… 这道题我想了一会儿实在想不到比较好的算法只能硬着头皮写了然后不断的debug经过我不懈的努力最后还是AC不过效率确实低。 我就是按照最直接的方法来先把intervals数组按照第一个数start来排序这个是通过定义一个sort方法用冒泡排序实现的然后用一个Listint[]来装答案先把intervals[0]放进答案用index表示list中最新放入的那个答案的索引(ans.get(index))然后从i1开始遍历intervals[i]因为我这个intervals是排过序的所以后面的intervals[i]的start一定大于等于前面的intervals[i]的start但是如果intervals[i][0]比最新放入答案的intervals[i][1](ans.get(index)[1])还小说明intervals[i][0]应该在刚放入的最新答案(ans.get(index))的区间之中所以我们要去更改那个最新的答案(ans.get(index))的end把ans.get(index)[1]改为当前元素的end和他自己的end的最大值这样就可以确保区间无重叠且完整以下是我的代码 class Solution {public int[][] merge(int[][] intervals) {int n intervals.length;int index -1;sort(intervals);Listint[] ans new ArrayListint[]();ans.add(intervals[0]);index;for(int i1;in;i){if(intervals[i][0] ans.get(index)[1]){ans.get(index)[1] Math.max(ans.get(index)[1], intervals[i][1]);}else{ans.add(intervals[i]);index;}}int size ans.size();int[][] res new int[size][2];for(int i0;isize;i){res[i] ans.get(i);}return res;}public void sort(int[][] intervals){int n intervals.length;for(int i0;in;i){for(int ji1;jn;j){if(intervals[i][0] intervals[j][0]){int[] tmp new int[]{intervals[i][0], intervals[i][1]};intervals[i][0] intervals[j][0];intervals[i][1] intervals[j][1];intervals[j][0] tmp[0];intervals[j][1]tmp[1];}}}} } 一看题解我都惊了我去和我的想法一摸一样我还以为我这种方法很low原来这是官方解法以下是题解代码 class Solution {public int[][] merge(int[][] intervals) {if (intervals.length 0) {return new int[0][2];}Arrays.sort(intervals, new Comparatorint[]() {public int compare(int[] interval1, int[] interval2) {return interval1[0] - interval2[0];}});Listint[] merged new ArrayListint[]();for (int i 0; i intervals.length; i) {int L intervals[i][0], R intervals[i][1];if (merged.size() 0 || merged.get(merged.size() - 1)[1] L) {merged.add(new int[]{L, R});} else {merged.get(merged.size() - 1)[1] Math.max(merged.get(merged.size() - 1)[1], R);}}return merged.toArray(new int[merged.size()][]);} } 原理和我的算法是一模一样的不一样的是他没有自己定义排序方法而是用了Array.sort()方法然后重写compare()方法,比较数组中第一个元素也就是strat就可以然后他也没用index来记录刚放进去的最新答案而是通过merged.get(merged.size()-1)来获得这个刚放进去的最新答案。
http://www.hkea.cn/news/14393951/

相关文章:

  • 关于我的大学的网站建设模板网站首页图片切换代码
  • 中国工程建设领域网站河南省财政厅经济建设网站
  • 上海个人医疗网站备案表江阴公司做网站
  • 青岛模板化网站深圳制作网站建设
  • 企业网站开发需求文档建设是哪里的
  • 邢台网站制作哪家好如何做自助网站
  • 学做ps的网站wordpress二次开发函数
  • 三亚网站制作公司东莞网站建设图表
  • 龙元建设集团有限公司网站建网站带app多少投资
  • 包头正规旅游网站开发哪家好开发者导航
  • 网络优化网站wordpress video gallery
  • 个人公司网站搭建如何制作公司网站和网页
  • 网站建设哪个公司顺的网站建设报价
  • xml是用来做网站的嘛哪里有做桥梁模型的网站
  • 建设彩票网站如何盈利宁波网站排名优化seo
  • 网络营销咨询网站源码网站换程序
  • 开源网站模板高要市建设局网站
  • 成都学网站建设益阳网站建设网站
  • 国外网站怎么做引流wordpress 百度云
  • 骆驼有没有做网站的公司咖啡建设网站的目的
  • 电子商务类网站模板品牌形象宣传策划方案
  • 莱芜住房和城乡建设部网站简道云crm
  • 食品经营许可网站增项怎么做阜阳网站制作公司哪里有
  • 如何做宣传自己公司网站网页设计与制作(第3版)书籍
  • 做360网站首页软件网上购物系统数据流图
  • 厦门大型网站设计公司长春网络科技公司排名
  • 网站建设及安全管理乐清站在那儿
  • 网站备份和备案的区别个人做金融网站能赚钱吗
  • 网站建设方案书怎么签字上传新网站做优化要准备什么
  • 信息网站方案抚养网站建设