- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我需要订购一组信封。每个信封都用它的高度和宽度来描述。信封 1 小于信封 2,如果它可以插入信封 2。如果 envelope1 不能插入到 envelope2 中,反之亦然,则它们无法进行比较。
我如何在 Scala 中订购这些信封?我在互联网上找不到任何相关信息。
这是我的一些代码:
object EnvelopeOrdering extends PartialOrdering[(Int, Int)] {
override def tryCompare(x: (Int, Int), y: (Int, Int)): Option[Int] = {
if (x._1 < y._1 && x._2 < y._2) return Some(1)
if (x._1 > y._1 && x._2 > y._2) return Some(-1)
if (x._1 == y._1 && x._2 == y._2) return Some(0)
None
}
override def lteq(x: (Int, Int), y: (Int, Int)): Boolean = x._1 < y._1 && x._2 < y._2
}
最佳答案
您感兴趣的是topological sort并且有一种经典算法可以按照边数的顺序复杂地执行它。在您的情况下,当且仅当第一个信封较小时(并且边缘应从较小的指向较大的),您将在两个信封之间有一条边。
关于algorithm - 如何使用 PartialOrdering 对集合进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25032658/
我需要订购一组信封。每个信封都用它的高度和宽度来描述。信封 1 小于信封 2,如果它可以插入信封 2。如果 envelope1 不能插入到 envelope2 中,反之亦然,则它们无法进行比较。 我如
我明白什么是partial order从数学的角度来看,但看不到在哪里以及如何PartialOrdering可以使用 Scala 库中的类型类。我搜索了整个标准库,只有一种用法:它通过 Orderin
[SGI official document] Because of irreflexivity and transitivity, operator< always satisfies the de
[SGI official document] Because of irreflexivity and transitivity, operator< always satisfies the de
不可否认,我对 Rust 还很陌生,但我喜欢目前所看到的一切。也就是说,我遇到了一个问题,我遇到了错误: error: only the builtin traits can be used as c
我在我的 Web 应用程序中使用 Spring 4.2.4.RELEASE,我想从中删除对 aspectjweaver.jar 的依赖。我不直接使用 AOP,当然也不使用 AspectJ。但是我的申请
看来 scala.math.PartialOrdering.lteq 必须始终定义为(或至少给出相同的结果): override def lteq(x: Pattern, y: Pattern) =
看起来不对称和基本,所以我想了解这个的推理,为什么PartialOrd定义 partial_cmp , 返回 Option ; fn partial_cmp(&self, other: &Rhs) -
带有 Kotlin 和 Gradle 3.0 的 Spring Boot 1.4.2。当我们尝试将 @Transactional 添加到 Controller 方法时,生成的 jar 无法启动并出现错
我是一名优秀的程序员,十分优秀!