scala中非常简单的算法
def listReplication(num: Int, arr: List[Int]): List[Int] = {
val l = new ListBuffer[Int]()
for (a <- arr.indices) {
for (b <- 1 to num) {
l += arr.apply(a)
}
}
l.toList
}
谢谢
答案 0 :(得分:2)
Cat skinning one-liner
def listReplication(num: Int, arr: List[Int]):List[Int] =
arr.flatMap(a=>List.fill(num)(a))
答案 1 :(得分:0)
您可以使用for { ... } yield
syntax遍历任何集合(或集合的笛卡尔积)并生成一个没有可变数据的新集合:
def listReplication(num: Int, arr: List[Int]): List[Int] = {
for {
a <- arr
b <- 1 to num
} yield a
}