加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala函数用于获取大小为k的所有已排序子集

发布时间:2020-12-16 18:24:44 所属栏目:安全 来源:网络整理
导读:我给了一组大小为L,并希望生成大小为k的每个已排序子集. 如果您的解决方案是 scala但是我可以自己翻译,那将会很棒. 应该产生L = 6和k = 3的示例运行. 1,2,3 1,4 1,5 1,6 1,3,4,5,6 2,4 2,5 2,6 3,5 3,6 4,6 我的scala尝试类似于: object Util { def main(ar
我给了一组大小为L,并希望生成大小为k的每个已排序子集.
如果您的解决方案是 scala但是我可以自己翻译,那将会很棒.

应该产生L = 6和k = 3的示例运行.

1,2,3
1,4
1,5
1,6
1,3,4,5,6
2,4
2,5
2,6
3,5
3,6
4,6

我的scala尝试类似于:

object Util {
  def main(args : Array[String]) : Unit = {
    starts(6,1)
  }

  def starts(L: Int,num: Int,level: Int) : List[List[Int]] = {
    if( num == 0 ) {
      return List()
    }else{
      (level to (L-num+1)).map( o => o :: starts(L,num-1,level+1))
    }
  }
}

我希望你能帮助我.

解决方法

你可以从那开始

def subsets(start: Int,end: Int,count: Int) :Seq[Seq[Int]] = (
  if (count == 0) 
    List(Nil)
  else 
    for(head <- start to end; tail <- subsets(head + 1,end,count -1)) 
    yield head +: tail
)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读