- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我需要为我参加的 Java 类(class)构建一个座位系统。
鉴于所需的座位数量,系统需要给出大厅中的最佳位置。
我所说的最佳位置是指座位之间必须尽可能靠近,并且尽可能靠近中间一排。
现在,一些定义:
座位之间的距离 - 矩阵中分隔两个单元格的最小单元格数。例如,单元格[3,3]和[2,2]之间的距离为1。
我想过做一个递归回溯函数,它会给我一个所有可能位置的列表,然后我将遍历它,根据所有位置之间的距离和所有座位与中间行的距离对其进行分级.
此解决方案效率极低。有人有更好的主意吗?
最佳答案
我不确定 Dijkstra 在这里如何应用,除非我误解了这个问题。您的偏好是否首先是相邻座位,然后是与中间一排的距离?即假设您需要找到 5 个座位,并且您在第一排有五个连续的座位可用,然后在中间排有 4 个可用座位,那么我假设解决方案是在第一排选择 5 个座位。
因此,给定所需的座位号 N...我要做的是从中间一排开始,选择一个空座位,然后通过标记所有相邻的空座位来“扩大”一个区域。如果该区域的大小为 N,那么您就完成了。如果不是,那么我会将这个区域压入堆栈(比如“增长开始”的位置和该集群中的空座位数)。然后我会沿着中间一行标记/种植这些区域。在中间一排之后,我会向上移动一个,然后再向下移动一个。然后向上两个,向下两个,等等,直到覆盖整个矩阵。诀窍是,不断寻找空簇,直到找到一个大小为 N 的簇。如果处理整个矩阵但不存在这样的簇,则可以返回堆栈并“巧妙地”选择加起来至少为 N 的空簇.
希望对您有所帮助。有趣的问题。
关于java - 如何找到矩阵中的最佳位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19966251/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!