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

html5微网站开发教程c 网站开发框架

html5微网站开发教程,c 网站开发框架,页面设计公司排名,网站做301打不开855. 考场就座 这段代码实现了一个考场安排座位的算法。在这个算法中#xff0c;考场被模拟成一个从0到n-1的数轴#xff0c;其中每个位置代表一个座位。目的是在每次学生入座时#xff0c;找到一个使得所有学生之间距离最大化的座位#xff0c;并在学生离开时更新座位信息…855. 考场就座 这段代码实现了一个考场安排座位的算法。在这个算法中考场被模拟成一个从0到n-1的数轴其中每个位置代表一个座位。目的是在每次学生入座时找到一个使得所有学生之间距离最大化的座位并在学生离开时更新座位信息。下面是具体的实现思路和算法描述 初始化 (public ExamRoom(int n)): n考场座位的总数。intervals一个TreeSet用于存储当前所有空闲区间并按照某种规则排序。这里的排序规则首先比较两个区间可坐的最远距离如果相同则比较区间的末端位置。startToInterval和endToInterval两个HashMap分别用于快速定位一个区间的开始和结束位置对应的区间对象。在初始化时会添加一个特殊区间[-1, n]到intervals中表示整个考场最开始时全部为空。 入座 (public int seat()): 从intervals中取出最优区间即开始时的排序规则确定的第一个区间然后根据该区间的起始位置和结束位置计算出新的座位位置。如果该区间的起始位置是-1说明最左侧是空的因此新的座位位置是0。如果该区间的结束位置是n说明最右侧是空的因此新的座位位置是n-1。否则新的座位位置是区间中点。入座后将原区间分为两个新区间并加入到intervals中。 离开 (public void leave(int p)): 当一个学生离开座位时通过endToInterval和startToInterval找到该座位所属的两个区间。将这两个区间合并为一个新区间并更新到intervals中。 辅助方法: private void removeInterval(int[] interval)从intervals、startToInterval和endToInterval中移除指定区间。private void addInterval(int[] interval)向intervals、startToInterval和endToInterval中添加新区间。private int dist(int[] interval)计算一个区间中可以坐的最远距离。如果区间的起始或结束是边界距离计算方式略有不同。 通过上述方法该算法能够有效地在每次学生入座时找到最优的座位并在学生离开时更新座位信息以保证考场的座位安排尽可能地公平和高效。 class ExamRoom {int n;TreeSetint[] intervals;HashMapInteger, int[] startToInterval;HashMapInteger, int[] endToInterval;public ExamRoom(int n) {this.n n;startToInterval new HashMap();endToInterval new HashMap();intervals new TreeSet((a, b) -dist(b) ! dist(a) ? dist(b) - dist(a) : a[1] - b[1]);addInterval(new int[]{-1, n});}public int seat() {int[] interval intervals.pollFirst();int start interval[0];int end interval[1];int seat 0;if (start -1) {seat 0;} else if (end n) {seat n - 1;} else {seat (start end) 1;}addInterval(new int[]{start, seat});addInterval(new int[]{seat, end});return seat;}public void leave(int p) {int[] i1 endToInterval.get(p);int[] i2 startToInterval.get(p);int start i1[0];int end i2[1];int[] interval new int[]{start, end};removeInterval(i1);removeInterval(i2);addInterval(interval);}private void removeInterval(int[] interval) {intervals.remove(interval);startToInterval.remove(interval[0]);endToInterval.remove(interval[1]);}private void addInterval(int[] interval) {intervals.add(interval);startToInterval.put(interval[0], interval);endToInterval.put(interval[1], interval);}private int dist(int[] interval) {int start interval[0];int end interval[1];if (start -1 || end n) {return end - start - 1;}return (end - start) / 2;} }/*** Your ExamRoom object will be instantiated and called as such:* ExamRoom obj new ExamRoom(n);* int param_1 obj.seat();* obj.leave(p);*/
http://www.lakalapos1.cn/news/35647/

相关文章:

  • 建设网站账务处理穆棱市城乡建设局网站
  • 做地方门户网站赚钱吗兰州出台9条优化措施
  • 兰州400电话网站建设网站里的活动专题栏怎么做
  • 高端手机网站设计如何自己创建论坛网站
  • 微信公众商城网站开发网站开发有限公司
  • 怎么做网页 网站制作做网站多少钱啊
  • 桂林设计单位资质升级网站军队网站建设方案
  • 上海建筑建材业门户网站昌平网站开发多少钱
  • 上海网站建设公司排名网站开发公司商业计划书
  • 手机网站导航栏如何做凡客建站登陆
  • 个人业务网站制作贸易公司做推广的网站
  • 网络策划就业前景seo报名在线咨询
  • 档案网站建设经验北京哪家网站开发公司好
  • 佛山八戒网站建设网站模块下载
  • 京东的网站规划与建设网站建设与管理实践收获
  • 网站开发技术期末考试题优质的企业网站
  • 网站推广常用方法包括南京 企业网站建设
  • 上海企业营销型网站建设网站网络广告推广
  • 东莞服饰网站建设四川省住房和城乡建设厅官方网站
  • 中国风网站设计dedecms一键更新网站
  • wap手机网站代码媒约网网址是多少
  • 做网站后端要学什么网站大屏轮播图效果怎么做
  • 怎么制作网站的网页设计wordpress固定链接index.php
  • 河南广宇建设集团有限公司网站做设计不进设计公司网站
  • 做网站客户温州做网站制作
  • 瑶海区网站建设公司wordpress 顶部大图
  • wordpress会员中心vip收费济南seo小黑seo
  • 普通人怎么样做网站网站页面小图标怎么做
  • sns网站建设哪家公司好重庆网站备案查询系统
  • 深圳市官方网站四川省建设人才网站