【发布时间】:2014-11-17 17:29:08
【问题描述】:
我想将一个列表细分为多个列表,每个子列表都有一个最大大小。例如,给定 List(1,2,5,3,90,3,4,1,0,3) 和定义为 4 的子列表的最大大小,我想返回 List(List(1,2,5,3), List(90,3,4,1), List(0,3))。
这是已经完成的:
val l: List[Int] = ???
val subSize: Int = 4
val rest: Int = if(l.size % subSize == 0) 1 else 0
val subdivided: List[List[Int]] = for{
j <- List.range(0, l.size/subSize - rest, 1)
}yield{
for{
i <- List.range(subSize*j,subSize*j+3,1)
if(i < l.size)
}yield{
l(i)
}
}
有没有更好、更实用的方法?
【问题讨论】:
标签: algorithm scala functional-programming