0

输入是一个螺旋矩阵,输出应该是一串明显升序的数字。

 def spiral(x: List[List[Int]]): Unit = x match {
      case List() =>
        println()
      case head :: tail =>
        print(head.mkString(" ") + " ")
        spiral(tail.transpose.reverse)
    }

val matrix = List(List(1, 2, 3), List(4, 5, 6), List(7, 8, 9))
spiral(matrix)

我想在 Scala 中获得最短的解决方案,尽管我很难以比上面的更短的方式编写它。

有人有什么主意吗?提前致谢。

4

1 回答 1

1

不是很短,但我试过了

def sp(xs: List[List[Int]]): List[Int] =
   xs.collectFirst { case x => x:::sp(xs.tail.transpose.reverse) }.getOrElse(Nil)
于 2016-02-24T16:02:19.657 回答