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

北京网站制作基本流程/站长统计是什么意思

北京网站制作基本流程,站长统计是什么意思,删除自豪的采用wordpress,郑州专业做网站的公司场景描述 电影院选座位,实现每次选最优位置的逻辑。最优判断逻辑如下:位置离中心越近,位置越好(比如9*9的座位,第4排5号,比第1排1号位置更好) 座位实体 Data NoArgsConstructor AllArgsConstru…

场景描述

电影院选座位,实现每次选最优位置的逻辑。最优判断逻辑如下:位置离中心越近,位置越好(比如9*9的座位,第4排5号,比第1排1号位置更好)

 

座位实体

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Seat {// 行偏移private Integer x;// 列偏移private Integer y;// 值越小优先级越高, 即位置越优质private Integer priority;
}

 

电影院类

@Data
public class Cinema {// 总行数private int row;// 总列数private int column;// 影院内最好位置(居中)偏移地址信息(key 为 x轴 和 y轴)private Map<String, List<Integer>> offsets;// 影院内的座位信息private Stack<Seat> seats;public Cinema(int row, int column) {this.row = row;this.column = column;offsets = Maps.newHashMap();seats = new Stack<>();init();}/*** 初始化影院信息*/private void init() {// 1. 找到电影院内最好的座位偏移地址(包括横轴/纵轴)List<Integer> ox = Lists.newArrayList();ox.add((int) Math.ceil((row >> 1) + 1));if (row % 2 == 0) {ox.add((int) Math.ceil((row) >> 1));}offsets.put("rowOffset", ox);List<Integer> oy = Lists.newArrayList();oy.add((int) Math.ceil((column >> 1) + 1));if (column % 2 == 0) {oy.add((int) Math.ceil((column) >> 1));}offsets.put("columnOffset", oy);System.out.println(MessageFormat.format("row=[{0}], column=[{1}]最优座位偏移信息=[{2}]", row, column, JSON.toJSONString(offsets)));// 2. 初始化电影院座位信息for (int i = 1; i <= row; i++) {for (int j = 1; j <= column; j++) {List<Integer> iox = offsets.getOrDefault("rowOffset", Lists.newArrayList());List<Integer> ioy = offsets.getOrDefault("columnOffset", Lists.newArrayList());int p = Math.abs(iox.get(0) - i), q = Math.abs(ioy.get(0) - j);for (int k = 1; k < iox.size(); k++) {int tmp = Math.abs(iox.get(k) - i);p = Math.min(p, tmp);}for (int k = 1; k < ioy.size(); k++) {int tmp = Math.abs(ioy.get(k) - j);q = Math.min(q, tmp);}seats.add(new Seat(i, j, p + q));}}// 3. 按照座位好坏优先级进行降序排序, 座位最好的放在栈顶seats.sort((x, y) -> y.getPriority() - x.getPriority());System.out.println(MessageFormat.format("row=[{0}], column=[{1}]总共初始化[{2}]个座位", row, column, seats.size()));}/*** 智能预定位置(优先选择最好的座位)** @param n 需要定的座位个数* @return 返回预定的座位信息*/public List<Seat> choose(int n) {List<Seat> rlt = Lists.newArrayList();for (int i = 0; i < n; i++) {rlt.add(seats.pop());}return rlt;}/*** 显示当前影院座位信息*/public void show() {System.out.println("当前还剩座位=" + seats.size());System.out.println(MessageFormat.format("当前还剩[{0}]个座位, 剩余座位信息=[{1}]", seats.size(), JSON.toJSONString(seats)));System.out.println();}
}

 

模拟选座

public class SeatApp {public static void main(String[] args) throws Exception {// 初始化一个 9 * 9 的电影院Cinema cinema = new Cinema(9, 9);// 查看电影院座位信息cinema.show();// 预定三个座位int num = 3;List<Seat> bookSeats = cinema.choose(num);System.out.println(MessageFormat.format("已为你选择[{0}]个座位, 座位信息=[{1}]", num, JSON.toJSONString(bookSeats)));cinema.show();Thread.sleep(3000);// 再次预定五个座位num = 5;bookSeats = cinema.choose(num);System.out.println(MessageFormat.format("已为你选择[{0}]个座位, 座位信息=[{1}]", num, JSON.toJSONString(bookSeats)));cinema.show();Thread.sleep(3000);}}

程序运行输出

row=[9], column=[9]最优座位偏移信息=[{"rowOffset":[5],"columnOffset":[5]}]
row=[9], column=[9]总共初始化[81]个座位
当前还剩座位=81已为你选择[3]个座位, 座位信息=[[{"priority":0,"x":5,"y":5},{"priority":1,"x":6,"y":5},{"priority":1,"x":5,"y":6}]]
当前还剩座位=78已为你选择[5]个座位, 座位信息=[[{"priority":1,"x":5,"y":4},{"priority":1,"x":4,"y":5},{"priority":2,"x":7,"y":5},{"priority":2,"x":6,"y":6},{"priority":2,"x":6,"y":4}]]
当前还剩座位=73
http://www.lbrq.cn/news/1478935.html

相关文章:

  • 松阳县建设局网站/找代写文章写手
  • 定制头像的网站/汕头企业网络推广
  • 免费做漫画网站/搜索量用什么工具查询
  • 中国建设积分商城网站/网络服务是什么
  • 制作网站建设的公司/西安关键词seo
  • wordpress 3.8 问题/河北网站seo策划
  • 香港建站网站/国产系统2345
  • 网站建设账务处理/怎样进行网络推广效果更好
  • 建设厅网站更改登陆密码/网址大全123
  • 知名建站的公司/搜索引擎排名查询工具
  • 实用的网站/比较好的软文发布平台
  • 高端网站定做/新闻热点事件2021(最新)
  • 建立网站批复/各大免费推广网站
  • 学做网站 软件/刺激广告
  • 做梯子的企业网站/注册网站需要多少钱
  • 做百度移动端网站软件下载/英文网站seo发展前景
  • vi设计基本要素/济南做seo排名
  • .net做网站后台/网络营销策划方案的目的
  • 免费网站建设报价/网络营销专业大学排名
  • 做外贸 是否需要做中文网站/seo怎么收费的
  • 快速搭建网站的软件/周口seo公司
  • 做网站前端后台/网络营销理论基础有哪些
  • 网站建设及经营应解决好的问题/app注册推广
  • asp网站连接access数据库/网页优化
  • 如何做网站挂qq/劳动局免费培训项目
  • 邢台做网站价位/网络推广怎样做
  • 乐山市建设局官方网站/网站排名seo培训
  • 为什么网站百度搜不到了/seo交流中心
  • 厦门网站建设模拟/seo软件推广哪个好
  • 微信开放平台如何注销/甲马营seo网站优化的
  • 暑期算法训练.12
  • WPF TreeView自带自定义滚动条
  • C++菱形虚拟继承:解开钻石继承的魔咒
  • 在线教育场景下AI应用,课程视频智能生成大纲演示
  • Vulkan入门教程 | 第二部分:创建实例
  • 婚纱摄影管理系统(发送邮箱、腾讯地图API、物流API、webSocket实时聊天、协同过滤算法、Echarts图形化分析)