Moz*_*ath 0 algorithm optimization performance list kotlin
查找 2 个列表是否至少有一个共同元素的最佳方法是什么?我正在尝试在 kotlin 中执行此操作,虽然这很简单,但我想探索哪种是执行此操作的最佳方法。
问题:
fun isAnyElementCommon(
alist: List<String>,
blist: List<String>
):Boolean
Run Code Online (Sandbox Code Playgroud)
一个例子是:
= alist.intersect(blist).isNotEmpty()
但我认为处理太多,无法找出所有共同值,然后检查它是否为空
编辑
另一个是:
= alist.any{ blist.contains(it) }
我知道这些解决方案。我只是想知道是否有更好的方法来解决这个问题。如果没有,那也没关系。我正在寻找一种低复杂性和低内存占用的解决方案。此外,在 kotlin 中,大多数情况都由一些辅助扩展函数涵盖。所以也许如果有这样的事情。我想知道。
要将其降低到O(n),请首先将一个列表转换为 Set。
fun isAnyElementCommon(
aList: List<String>,
bList: List<String>
):Boolean {
val aSet = aList.toSet()
return bList.any { it in aSet }
}
Run Code Online (Sandbox Code Playgroud)