我正在尝试解决初学者的问题,但无法解决问题:
如果列表中有重复项,则返回true,否则返回false。考虑了空列表。
def duplicates(a: List[Int]): Boolean = {
case Nil => false
case x :: xs =>
if(xs.contains(x)) true else false
}
但这不起作用。而且它不是递归的。这只是我想开始的地方,但我遇到了困难。请帮助,并在合理的情况下尽量避免使用非初学者的解决方案。
答案 0 :(得分:1)
您需要递归调用函数。因此,如果xs不包含x,则调用函数,但使用其余列表。
def duplicates(a: List[Int]): Boolean = a match {
case Nil => false
case x :: xs =>
if(xs.contains(x)) true else duplicates(xs)
}